I had no issues like this until the day I activated my new phone (12 Pro Max). No issues with iMessages, but if I read a non-iMessage SMS on my iPhone, it would still show unread on my Watch and iPad. I followed the steps listed in this thread and others, and the suggestions of some YouTube videos. I contacted Apple and after nearly three hours with an agent, it was escalated to engineering. Their last reply was that they were aware of the issue and hoped it would be resolved in an upcoming iOS 14.xx release.
After looking more into potential fixes, I decided to try this and it worked.
- On your iPhone: Go to Settings --> Messages --> Send & Receive.
- Under You Can Receive iMessages To and Reply From, deselect your phone number. You will be asked to confirm you want to remove the number from iMessage and FaceTime. Click Remove. I did not lose any messages or experience any other irregularities on any of my devices when I did this.
- After a few seconds, add the phone number back.
After doing this, any non-iMessage that came in to my iPhone that I read would correctly show as read on my Watch and iPad. It will not mark read any messages received before this, but moving forward after following those steps, it synced correctly.
Hopefully this is a possible fix for those who have exhausted all other options.