Hi Rachel,
You would have to perform the swap using actions, on a button or link. I'd recommend putting a button on the CRM_Contacts screen such as "Set as Primary Contact", or adding a Link column to the Contacts grid on the CRM_EditCustomer screen.
As far as the actions are concerned, it would probably be best to save all the currently open / selected Contact's information into Action Results (one for each field). You could then replace that active/selected contact's information in the table with the information from the Primary Contact (SpecialType = Contact) for that Customer. Then you could use the data stored in the Action Results to replace the information for the Primary Contact, completing the swap as far as the Contacts table is concerned.
Keep in mind this would also update QuickBooks with the contact info for the new primary contact, and you would also have to take care to swap all Activities, Opportunities, Cases, etc. for the contacts involved, so it's not a particularly straightforward customization.
If you aren't comfortable customizing Method, I wouldn't recommend trying to tackle this. It is something that our Professional Services team could build out for you if you'd like, however, so let me know if that interests you and I'll have your account manager reach out to discuss the specifics.
Hope this helps.
- Justin