Some additional information, including a possible fix and workaround for people having similar issues:
Somewhere in the process of creating/moving/renaming groups, a bunch of my contacts disappeared from my contact list, not re-appearing even after restarting the client. Groups that should have users are displaying zero of zero. I found out that when this happens, i am able to 'recover' these contacts by going into options > Ignore, right clicking, and using 'move to group' to put them back onto my list inside a new group. (Or you can disable groups entirely and your missing contacts will show up again on your list again.)
I have a backup of a broken profile that is missing most of its users in which clicking on the Visibility menu causes Miranda to hang with 25% cpu usage. Tried letting it run for 10 minutes but it was never able to recover and needed to be forced closed. Using the 'right click a user' > Move to Group option, i found that i had multiple duplicated groups that were listed next to each other with the exact same name, and if you right clicked a user in one of those groups it would show a checkmark beside both groups. I used this method to find out which groups were potentially causing problems by being duplicates and then deleted them. (All of the duplicates mentioned here were invisible, only one copy visibly showed up on the contact list, the duplicates only showed up in the 'move to group' menu.)
Different from the duplicates above, I also had a duplicate group in the root folder named "Z - Steam" that did NOT show up on the group list as being a duplicate (but one of the folders inside of it did). The root group "Z - Steam" Would not bring up a delete dialogue confirmation when pressing the delete key on it, but the other one would.
Deleting one of the sub groups ("Steam Misc") inside of this duplicate folder would cause BOTH "Z - Steam" groups on my contact list to disappear, requiring a restart of Miranda in order for them to show back up again. After deleting "Steam Misc" and restarting, 4 out of 9 of the sub groups in "Steam Misc" now become duplicates, showing up inside both of the "Z - Steam" folders. All of the groups inside of the phantom folder had 0/0 users. Deleting the rest of the groups inside the root "Z - Steam" group (the one that wouldnt allow itself to be deleted) caused the Z - Steam" group that couldnt be deleted to disappear. Deleting these phantom groups which displayed 0/0 users (sometimes) caused the users which were in the other group that showed their users to spill out into the base folder.
Once the phantom "Z - Steam" group was gone, accessing the Visibility menu no longer caused Miranda to hang anymore. After doing this, about half of my users were still not showing up on my contact list, but could be recovered from the ignore/visibility menu. To be on the safe side, i also deleted the other duplicate groups as well, even if they were properly displaying their users. Deleting the first group would cause all of my users to spill out, leaving an empty copy of the original group in the same place. I also deleted that group in case it was corrupted.
(An additional oddity that was noticed was that if i 'hide offline users' in the group that wouldnt let itself be deleted, it would cause a different root group to expand when it had been previously closed possibly. This makes me think that these two groups shared an ID in some way?)
-
My best guess as to the cause of this behavior is some sort of corruption of the group entries in the profile database. More testing is needed to determine if creating/renaming/moving groups will continue to cause a problem now that all of the duplicates have been removed from my profile. I will keep a backup of the broken profile along with the instructions to fix it in case the problem crops up again. In the meantime hopefully some of this information is of use to someone if they have something like this happen to them.
(I'd be willing to share the broken profile with a developer if they wanted to look at it, if i could find a way to remove enough personal information from it first, but that would be a very time consuming process I suspect. Leave me a message if interested.)