Hi Jo!
This is, indeed, an issue that has been reported with some regularity for a number of years. Apple Support Communities power user, Linc Davis posted a set of instructions that a number of users have reported as being effective.
1) Back up all data.
Back up your Mac with Time Machine
2) At System Preferences > Internet Accounts > iCloud, deselect the checkbox for Contacts.
3) Open the Contacts app. From the list of groups on the left side of the Contacts window, select All Contacts. From the menu bar, select File > Export > Export vCard. Save the exported contacts to the Desktop, then quit Contacts.
4) Triple-click the text on the line below to select it, then copy it to the Clipboard (command-C):
~/Library/Application Support/AddressBook
5) In the Finder, select Go > Go to Folder. Paste into the box that opens (command-V), and press return. A Finder window will open with a folder selected. Move the selected folder to the Desktop, leaving the window open for now.
6) Launch Contacts. Your contacts will be gone. From the menu bar, select
File > Import and import from the file you exported above. Your contacts will reappear.
7) Re-enable Contacts in the iCloud preference pane and test. If the issue is resolved, delete the AddressBook folder and the vCard file on the Desktop and close the open folder window.
Cheers.