HDD Regenerator isn't exactly free, but it works well recovering data on hard drives with bad sectors. There is a trial version that will repair one sector at a time, but you have to keep rerunning the program over and over, possibly a few thousand times depending on how badly the drive is damaged. Keep in mind that this won't work for data you have lost because it was accidentally overwritten.
But I'm trying, Ringo. I'm trying real hard... to be the Shepherd.