You're doing it wrong, you should be using User Titles for this.
But i have just tested the following:
- Created 2 ranks.
-- 1 active for the 'Registered users' usergroup, minimum posts set to 1. ("Reg Rank")
-- 1 active only for the 'Moderators' usergroup (only do this on a test forum

), minimum posts =1 ("Mod Rank")
- Created test user with 2 threads
- While test user still in Registered Users usergroup, he is showing the "Reg Rank"
- Created a subscription that will change the usergroup of the user to Moderator (again, only do this on a test board).
- Added the user manually to the subscription from the AdminCP.
- His userrank now changed to "Mod Rank". No need to update counters or anything.
So most likely you have a modification installed that is interfering with the normal behaviour.