This is probably a longshot, but a lot of stuff in windows land isn't sensitive to capitalization like Unix is. I'm just wondering if your new password you put in through powerCLI had mixed case letters in it, and if either the capitalization was dropped by the windows powerCLI command parser, or it got interpreted as all caps or something. If you can still get in through the powerCLI you might try resetting the password again to something easy without mixed case capitalization, and if your password policy on ESXi requires a special character, try something different than a "$", such as a "_" (I find that a "_" is less likely than some other special characters, like a "-" or a "/" to cause problems with parsers.).
Edit:
Another thing you might try before messing with the root password again, is to create another ESXi userid using powerCLI and see if the password ends up what you think it should, and if you can get in with the vsphere client using it. That way you may discover if there are some issues with certain characters or capitalizations through the powerCLI command parser without risking losing your remaining root access through powerCLI. After some experimentation you may figure out what went wrong with your initial password change and may be able to fix it with less risk of losing access. I'm also assuming that you can't create a new userid on ESXi that's capable of changing the root password no matter what authority you give it, otherwise you could create a new userid with PowerCLI, then login to the vsphere client with it and change the root password from there.