I have had good luck repairing disk errors with spinrite (
http://www.grc.com/spinrite.htm). It tries *very hard* to get data from bad sectors, then remaps these sectors elsewhere. Of course, it can't get data back that is truly unreadable, but in many cases the data is actually there.
It can be bought online, which might make it available to you.
Note: it can take days to run on a large disk with lots of errors.