Flex doesn't think of Contacts in terms of position. You can give an Individual Contact a "Title," but it doesn't "do" anything. The QuickBooks integration is going to look at the Client in Flex and determine if there's a match in QuickBooks. "Client" could be a person's name or a company's name.
Regardless of whether you use an Individual Contact or Company Contact in Flex, if it has a Company Name, the integration will take the Company Name. Whatever that is must match a "Display Name" in QuickBooks Online or the "Customer Name in QuickBooks Desktop. If you use an Individual Contact in Flex that does not have a Company Name set, it will take the First and Last Name to find a match in QuickBooks using the "Display Name" or "Customer Name" according to the QB version in use.
Furthermore, if "John" and "Jane" both exist in Flex and are related to company "XYZ," an export of a job for "John, XYZ" will create that record in QB. However, if that's later followed by the export of a job for "Jane, XYZ," it will overwrite John with Jane. This is because QuickBooks only supports one "name" for each Company.