I posted in one of the forums the other day, and somehow it has been marked as "solved" unfortunatly its not, I didnt mark it as solved either. So i have posted a link to it here to save me writing again as this is driving me insane.
If anyone can help it would be appreciated.
http://androidforums.com/solved/756532-lots-duplicate-contacts.html
First of all, you will be better off syncing your contacts with your gmail.
In regard to duplicates:
This will require a bit of spring cleaning, but once done, it will last for a long time.
First, you need to sort out your gmail account using browser. Each time you send, reply or forward an email message to someone through Gmail, it automatically saves the email address of that person to your contacts list, which will eventually get synced to your phone.
Visit your gmail and go to Settings (cog icon). Under General tab, look for "Create contacts for auto-complete" and select "I'll add contacts myself". This will stop google from over populating your contact list.
Under System Settings and Accounts, disable Google sync on your device, just for a while.
Now you will need to spent some time and organize your contacts in gmail/contacts using browser. It's much easier than doing it through "Join Contact" or deleting them on the phone.
When done organizing your account, return to the phone (with sync still OFF), and delete all the contacts from the phone.
Turn the sync back ON and wait for it to load brand new list of cleared contacts.
You will still find some random contacts with whatsapp phone number only, or skype or gmail. Join them to your primary contact (if you have such) by opening it, and do the Join Contact through the Menu option, to consolidate the mails, whatsapp or skype, with the phone numbers, under one name.
Of course, you might have Skype contact without phone number, that's fine.
I would also suggest looking through all the apps that do contact sync. And perhaps disable it.
Keep in mind, people use different mail for forum, different for work and different for social networks, so it can also populate the list with multiple entries.