I would clone your drive, sector by sector, with a tool (eg ddrescue freeware) that understands how to work around bad patches in the media, and then use data recovery software on the clone.
Data recovery professionals will tell you that using SpinRite on a drive with failing heads is a very bad idea. Not only will SpinRite accelerate the failure of a bad head (by repeatedly hammering away at bad sectors), but even if it is able to recover a particular sector, it then writes the data back to the bad drive.
Ddrescue is a multipass cloning utility that keeps a log of bad sectors. It clones the easy sectors on the first pass, and then tries for the more difficult ones on subsequent passes. It skips over bad patches in the media rather than flailing away pointlessly. It can also clone the drive in reverse, effectively disabling lookahead caching.