The price extensions can be done in a portal view or multiple record view on the layout, so that should be relatively easy once you solve the other issue.
What your describing seems to be a relationship between two tables based on "show me everything that is NOT related to this record" and this is possible...
To do this, you set up a direct relationship on the TOG between the two tables, lets say its out "Order" table and your "Widget Select" table. These table are assoiated by the Order IDin a one to many from Order >> Widget Select. Widget Select table is connected to "Widget Catelog" table and linked via Widegt Selected>>Widget Catelog. Now you create a copy of the Widget Slected table reference in your relationship graph and conect this to the Widget Selected table via Widgets fields in a NOT relationship.
The Order>>Widget Select>>Widget Catelog relationship runs your invoices and all that.
the Order>>Widget Select>X>Widget Catelog 2 runs the value list. That is you creat a value list based on all values of field widgets in the Widget Catelog 2 Table Reference and then relate that value list to Widget Select.
Back in you layout for order, customer elet the product they want via a portal to widget select with a drop down value list in the widget field.
It should work, but can take some fidling with. For more infor on this, I used The Missing Manual or read up on related value lists.
Hope this helps...
Thanks to both of you, will have started fiddling with this. I hope to get it done tonight and let you know.
Thanks to both for you answers. They are both excellent answers and I greatly appreciate them.
I went with LaRetta as it closely resembled what I wanted. I wrote my code based on that model.