After weeks of reading discussion boards on Apple and forums on other platforms and not finding a resolution, I did an online chat with an Apple advisor. The advisor tried this and that, but was stumped and sent me to a Senior advisor who helped me on the phone. Many hours later, a solution was found, and I will share it in hopes that it'll solve someone else's problem too.
In System Preferences, go to iCloud and sign out. Uncheck items to save from iCloud to HD, continue.
SysPrefs > Internet Accounts, uncheck sync contacts from other accounts, e.g., gmail.
From Go menu, hold down Option key, select Library.
Find Application Support folder. Select all items in it. Control-click, create New Folder With Items. Close folder.
Back out to Library. Find and open Preferences folder. Drag com.apple.AddressBook.plist to desktop. Close folder.
Back out to Library. Find and open Containers folder.
com.apple.AddressBook folder. Select all items in it. Control-click, create New Folder With Items. Close folder.
Restart Mac.
SysPrefs > iCloud. Sign into iCloud.
SysPrefs > Internet Accounts, check sync contacts from other accounts, e.g., gmail.
Open Contacts on Mac. Hurray!! All the contacts are present!
Open Messages on Mac. Hurray! Names all appear where they should!