I just spent the whole day jumping through hoops to try to fix this with Apple support to no avail.
They had me delete the contact, create new separate contacts, have my boyfriend re-enable iMessage on the work phone (had turned this off due to prior bugs) and disable again. They even had me delete all my text messages with my boyfriend of 8 years (which I was not willing to do), but they assured me I could restore from back up and the issue would be fixed. I back up my photos elsewhere, but it's a pain to restore, so I had to pay for additional iCloud storage just to do this. I deleted the messages, tried testing the issue, and the it still persisted even with no contacts or prior messages. It would still switch between his work and personal phone, and when starting a new thread specifically to one number, it would get confused on which prior thread to include and later change it in the Messages app.
They then thought restoring could maybe fix the issue as "It does additional checks when it is loading that data in actually. It is not a direct drop in and replacement import of data." I have corp on my phone and it took hours of manual testing, backup and restore, and manual restoration to get my phone back to normal. After restore.... exactly the same. Like nothing has changed. A whole day wasted chasing what must be an internal system bug, but they were convinced that somewhere between iMessage state, contacts, or message state there was an issue we could fix by deleting my data. I even sent them this thread and they assured me that it would be fixable by me. I have to say I'm impressed by the technical expertise of the support, but disappointed by the amount of time wasted to be back in the same place. I have a call tomorrow with senior support and will update if there are any resolutions.