Apologies in advance for the long story, but I didn't want to miss anything.
I had 2 HDDs, one 2TB with two partitions for OS and data respectively, one 3TB for data only. The one with OS became incredibly slow (to the extent of being completely unusable - boot up took well over 10 minutes) after a power cut, so I formatted the OS partition and reinstalled it. CrystalDiskInfo showed some pending sectors, so I ran CHKDSK /R, which found no problem, but the system started to hang for a few seconds in every 30 minutes or so. At that point, I moved the data from the second HDD (it was fairly empty) to the first one (yes, now I know I'm officially an idiot), so I could install OS on the second HDD.
I then managed to move part of the data from the corrupted disk to the healthy one, but some kind of I/O error message showed up for a file. I ran CHKDSK /X /B, this time on the data partition. It started to repair bad clusters, succeeded for a few files, then the command line got stuck for a few days and today it ended with the message that it ran out of free space. As it unmounted the partition in the process, I thought a restart might help.
The result is that the PC either gets stuck during boot up with the corrupted disk connected or it boots up fine, but without recognizing the corrupted disk both in BIOS and in Windows. When I connect the SATA cable to it after boot up, the Device Manager recognizes it and a 100MB system partition shows up in My Computer and is accessible. The main partitions also show up, but I can't access them and the HDD activity LED is on for ages.
I suspect every single step I made was wrong and you can call me whatever you wish, but do you have any ideas how can I recover my data?