How to Import Contacts and Link Account Name to Opportunity or Account Based on a Status Field

Trying to wrap my head around the below issue and need a little guidance.

Sugar 9.0 Professional OnDemand

Our Flow:

  1. Leads (Called Unclaimed Leads in our instance) is a list of companies that fit our business model and have been pre-qualified by marketing, but have yet to be claimed(converted) by a sales rep based on their locations and individual workload.
  2. Once claimed(converted), they become an Opportunity (Called Prospect in our instance) and that is where the sales stage begins. When doing the conversion from Lead, they create the Opportunity (Prospect) record, and optionally a contact if they have it at this point. If no contact yet, they can add this later.
  3. Once they acquire contacts for the Opportunity, they can begin the sales stage and once the sales stage equals Contract Signed (Closed Won) an account(Current Account in our instance) record gets created automatically via a logic hook.

Issue:

All of the above works fine, however we have issues with importing contacts and linking them based on what the contact is (account or opportunity). 

Ideally, when importing contacts, we'd like the contact record to link to either an existing Account record or an existing Opportunity record based on a contact status field of 'Account' or 'Opportunity'. Then once the sales stage for the Opportunity reaches closed won and the Account record is created, the contacts that were associated with the opportunity become associated to the newly created Current Account record. 

Is this achieved via a logic hook or modifying relationships? Still learning Sugar so unsure of the best route to take.

Please let me know if you need additional clarification.

Thanks in advance for your help.