It should all be working again now.
It would seem that an auto-unread-thread-prune call seems to have broke half way through hence the read messages suddenly becoming unread again. I say "seem" because I have no proof that is what actually happened, but it makes the most sense judging by the missing data in the database.
Anyway. It shouldn't happen again but you will need to manually mark as read the threads you can see that have cropped up as unread.
Sorry 'bout that.