Sure sounds mysterious to me...
You mentioned cloning your drive. Did you need to:
Reinstall the OS?
Reinstall Bitcoin-Qt?
Do you have an older backup of your wallet file?
Have you made any other recent changes (other than the HD upgrade) to your PC?
Does your passphrase contain any non-ASCII characters (any characters not in this table:
http://en.wikipedia.org/wiki/ASCII#ASCII_printable_code_chart)?
If the answer is no to all of those questions, I'd probably try dumping your wallet file with pywallet which might provide some clues.
You can download it from here:
https://github.com/jackjack-jj/pywallet/archive/master.zip If you're on Windows, you'll also need Python 2.7 from here:
https://www.python.org/download/ (you don't need any other libraries, despite what the README for pywallet says)
Next run it from the command line, something along these lines* (after you unzip the pywallet-master.zip file somewhere):
C:\python27\python C:\Downloads\pywallet-master\pywallet.py --dumpwallet --passphrase="the passphrase" > wallet-dumped.txt
If any of the private or public keys in your wallet file are corrupted, Bitcoin-Qt will complain about a bad password, but pywallet only checks the first key it finds. In the dump file, check for a message that says "The wallet is encrypted and the passphrase is correct" or "is incorrect". If correct, you probably have a single corrupted key which could be found and removed. If incorrect, then it could be your master key that's corrupted, or the password actually has changed, which might not be repairable....
* If you're paranoid like me, the output file should be something like " > e:\wallet-dumped.txt" where e: is a disposable thumb drive which you can later destroy. One thing about SSDs is that there's usually no good way to securely delete a file from them, and the dump file will contain all your
unencrypted keys... if you have a hard disk drive, you could use Microsoft's SDelete (Google for it...).