It appears that you have some confusion in setting up an auto-entered serial number as a match field between your tables. It sounds like you have a company ID field defined in your contacts table as an auto-entered serial number. This should not be the case.
A many to many relationship between contacts and companies means that a given contact can be associated with any number of companies and a company can be linked to any number of contacts. Is this what you actually need?
Start with these relationships:
companies::__pkcompanyID = company_contact::_fkcompanyID
contacts::__pkcontactID = company_contact::_fkcontactID
You can place a portal to company_contact on the companies layout to list and select contacts records for each given companies record. Fields from contacts can be included in the Portal to show additional info about each selected contacts record and the _fkcontactID field can be set up with a value list for selecting contacts records by their ID field.
But if a contact can only be linked to a single company a simpler set of tables and relationships may be set up as you now have a one to many relationship from companies to contacts.
This solution works perfectly!! I realized that instead of creating records in the Contacts, the best way was to create records for in the Portal in the Companies. Then all I needed to to was to go back to the Contacts and edit the rest of the info. Thank you!