Hello,
MetaPL, Windows can sometime boot, work as everything is good and nothing is damaged, I'm 70% sure It's the HDD fault, because an HDD contains sectors, and when it falls those sectors are more likely to be damaged, windows is mostly installed on the first clean sectors of a hard drive, and assuming that there are bad sectors, then sometimes informations are being stored in those bad sectors, that's how you can experience multiple and random errors, and it all will take you back to your HDD that was not entirely clean all along..
Anyway I've given you my solution and the way to make sure if your HDD is clean or not, I see that you didn't do the test I've told you too, I can't help you if you don't help yourself mate
Best of luck.
Ps: about good sectors and bad sectors ..
A Hard drive contains sectors, and each sector represents an amount of data, for example a 500GB contains a total of 976,562,500 sectors, each sector represents 512 bytes (1/2kilo byte), windows is commonly installed in sector 1 until sector 2,000,000 for example, then if the next sector is damaged, windows will try to write or read information in this sector it will lead to a loop, then windows may crash, timeout the operation, reboot, or it may not affect the system at all, but how can you make sure which sector from the overall number of sectors are damaged? and not to mention that there is no order in damaged sectors, like you may have sector 2,500,874 to 2,800,674 damaged and at the same time sector 902,541,678 to 908,254,167 damaged etc..
You see how it works now? if you understand that you know why windows is crashing and running slow..