iMessage mixing up contacts / message threads
I am signed into my Apple ID on my personal iPhone, work iPhone, iPad, and iMac. All running the most recent iOS/iPadOS/macOS update.
Recently, some conversations in iMessage have gotten mixed up and don't show as being received from the correct contact. For example:
I have a 1:1 conversation with Fred, and another, separate 1:1 conversation with Molly. Since yesterday, new messages from Fred appear in the conversation with Molly, but it doesn't show Molly's name, only her (work landline) phone number. The previous message history with Fred has disappeared. This is happening on my iPad and work iPhone, but things all look normal on my personal iPhone and on my iMac.
What is going on? Can I restore the lost messages from Fred? And how can I separate back out the two conversations? I really don't want Molly getting messages for Fred or vice-versa!
Similar questions have been asked before - but a long time ago with earlier OS versions.