if I try and remove a contact from the portal in the Invoices solution, it deletes the full Customer record and any associated Contacts lose their connection to the company.
Is this a portal to contacts or customer? When defining the relationship linking contacts to customer, did you select a delete option for the relaitonship?
In the Contacts solution I am unable to show a drop down list that would allow me to select another company for that Contact to be related to.
By adding a table occurrence to customer via an external data source in your contacts file, you should be able to set up such an option for re-assigning a contact to a different customer record.