Don't waste your time using data recovery software until you get a full sector-by-sector clone. Then run the data recovery software, if you need them, against the clone. Think of it this way, you should never read a single sector on a hard drive more than once. If you read it, copy it to another drive.
If you try to clone with software such as Acronis, GetDataBack and the likes, they usually read sectors in blocks, they don't log the missed sectors and there is no way to go back and fill in the holes left behind.
Here is an example:
Program reads a block size of 256 sectors at a time. The program hits 100,000 bad sectors throughout the drive. But, because the drive is reading in blocks of 256 sectors, the 100,000 is now 25,600,000 unread sectors. With each sector being 512 bytes, that is about 12.8GB of unread data vs 51.2MB of unread data.
Of course, it is possible that some of the bad sectors will be clustered together, making it possible that there may be more than one literal bad sector within each 256 sector block skipped.
With a program like ddrescue, it logs the skipped sectors and continually will decrease the block size until it has read all the good sectors around the bads. It is possible that multiple read retries (after the first pass is complete) will result in a sector that wasn't read the first time to read the second, third or 100th time.
Does this make any sense? Have I veered off topic? Anyway, if you don't have a professional data recovery imager like a DeepSpar Disk Imager, your best option is to use ddrescue when trying to recover data from failing hard drives.