How to prevent automatic aggregation of contacts I have more than 3000 contacts and maintain the master copy on my PC.
I regularly create a CSV file from the master and then copy the data to the Contact Manager on my Samsung S3.
I have done this for years, with a Blackberry and then an iPhone.

Android Contact manager arbitrarily joins contacts together. People who work for different companies with the same name, people who live at the same address with different names, etc.
The result is that I cannot find them in my address book, and phone numbers get mixed up. Without separating the joined entries I cannot tell which phone number belongs to which person when I try to call someone. 
Equally, when someone calls me, the wrong name is displayed.
I have tried using different ways of moving data to my phone (a Samsung S3). Using Kies or VCF files.
Surely there must be a way to turn off this destructive 'feature'.
It would take me days to go through all my contacts and separate them manually each time I copy from the master.  Synchronizing rather than delete/copy makes it worse. Entries that I have previously separated join together again!
As an Android Developer, I know, that it can be done programmatically in an app:
https://developer.android.com/reference/android/provider/ContactsContract.AggregationExceptions

However, I don't know if there is any contact app having such behavior.

I know one app that has so-called "private" contacts feature - that's contacts that it does not share with Google. It might help you but you'll have to use it instead of the default one:

https://github.com/SimpleMobileTools/Simple-Contacts

Here, for a very small price (half a dollar in September 2019) https://play.google.com/store/apps/details?id=com.simplemobiletools.contacts.pro

Here, for free:
https://f-droid.org/packages/com.simplemobiletools.contacts.pro/