WhatsApp contacts doesn't merge with Google Contacts
I might be a little late, but still, at least for google.
I had the very same problem recently, some whatsapp contacts were separate from original (google / device / doesn't matter). Manual join did not work - phone said contacts joined but they did not.
After some fiddling I found a solution thet worked for me in all cases.
Problem was in phone number format in original contact and in whatsapp. It is possible to store the number either with or without spaces.
Here in Czech Republic these are

+420 123 456 789
+420123456789

in UK it is

+48 1234 567890

+481234567890
etc.


Solution was simple after realizing this, edit all your google contact numbers coresponding to whatsapp and either add the spaces in numbers without them or delete the spaces in numbers which got them.
After that I was able to join manually all contacts with whatsapp contacts.
Hope this helps
JirkaBitr