Also remember that hard disk "issues" can manifest themselves in a way most people don't expect: depending on how software (whether it be drivers or applications, doesn't matter) handles I/O errors (specifically files which can't be read due to "suspect" LBAs), some may just silently continue onward with no error handling. The end result, more often than not, is a piece of memory that was used to read the file contents containing random data (or zeros if they use memset() or calloc()), and the software treating that data as if it were correct.
This is why with hard disk issues, the first thing I do is replace the hard disk + reinstall the OS (or do a full bare metal restore from backups).
Glad you at least tracked it down to something physical though. Hooray PC hardware. *cough* -- Making life hard for others since 1977. I speak for myself and not my employer/affiliates of my employer.