I was working directly on a user's Mac and saw the problem first hand. He has 4 devices. Sync works on 2 devices (all Sierra) but on the other two only contacts are partially syncing and no groups. One device is a brand new iMac. So new Mac, new User, no import, connect to iCloud and he gets approx half of the contacts and no groups. All this points to iCloud as the source of the problem.
We talked with Apple and they were unable to fix and agreeded that there is a problem on the cloud with his data. His issue has been sent to the tech guys for iCloud and we expect an answer in a few days.
It's possible you are experiencing the same issue. I suggest you call Apple Support and report your issue. the more reports they get the higher it will go on the list to fix.
BugReporter http://bugreporter.apple.com
Free ADC (Apple Developer Connection) account needed for BugReporter. Setup a free account
Mac OS X Feedback (no account needed)
http://www.apple.com/feedback/macosx.html
From my general experience, I believe the following steps could fix the issue.
Turn off iCloud for Contacts in System Preferences > iCloud.
- Log into iCloud.com > Contacts
- Select All Contacts > Select All then Select Export.
- Do the same for each group.
- Delete all contact data from the cloud.
- Verify on each device that the cloud is empty.
Step 2) Test in a new User
Move the archived data you exported from the cloud to the Shared Folder. Data in the Shared folder can be accessed by another User. When you "Switch Users", you can access the files in the shared folder.
Your Hard Drive/Users/Shared
- Log into a new User. Log into iCloud and select only contacts to sync.
- Open Contacts.app - verify that it is empty
- Drag from Shared the archived contact data to the Desktop
- In Contact under File in the Menu bar, select Import. Navigate to the Desktop and select the All Contacts first.
- Did the imported contacts go to "On My Mac" or to iCloud?
* If iCloud, wait until it completes sync, then check in your browser that the contact synced.
* If "On My Mac", drag to iCloud. Wait until it completes sync, then check in your browser that the contact synced.
- Add a contact in Contacts then verify in browser to make sure it synced.
- In Browser, edit the contact you just added then check back in Contacts that the edits synced.
- Next, import your groups. Move to iCloud if needed.
- Verify that you can edit/add on Contacts and in iCloud.com that changes are synced.
- Log out of Test
- Log into your regular User
If all this works in the Test user, you will need to wipe the data for Contacts in your regular user, empty the trash, restart then check sync for Contacts in System Preferences > iCloud. All the data you imported in Test should download to your regular User.