I did a search but found nothing so I'm not sure if this has been reported before.
Anywae, this is hard to explain but.
Lets say you join a channel, get opped, see one user with a voice, then hop them. Rejoin the channel, then dehop them, the original mode (voice) will not be displayed in the nicklist even though they are voiced, however the dehop will be removed successfully.
[19:35:26] <@Jigsy> !hop BloodRayne
[19:35:26] * G sets mode: +h BloodRayne
[19:35:28] * Attempting to rejoin channel #ut
[19:35:29] * Rejoined channel #ut
[19:35:36] <@Jigsy> !dehop BloodRayne
[19:35:36] * G sets mode: -h BloodRayne
[19:35:36] -G- DeHalfopped users in #ut.
[19:35:44] <BloodRayne> stop toying with my emotions
[19:38:21] <@Jigsy> !voice BloodRayne
[19:38:21] -G- Voiced users in #ut.
[19:38:32] <BloodRayne> already voiced
[19:38:41] <@Jigsy> I know
[19:38:47] <@Jigsy> !devoice BloodRayne
[19:38:47] * G sets mode: -v BloodRayne
[19:38:47] -G- Devoiced users in #ut.
[19:38:49] <@Jigsy> !voice BloodRayne
[19:38:49] * G sets mode: +v BloodRayne
[19:38:49] -G- Voiced users in #ut.
If you type /names #channel then the list is refreshed with the correct usermode displayed on the nick.
I did this on mIRC v6.17.