If both are not reading it correctly there may be an issue with the drive.
I've had success a couple times using the Linux 'dd' utility to copy a disk that wasn't read by Windows.
You will need a second hard drive that is the same size or larger for the copy, and a Linux box or live CD.
You can run a dd command-
dd if=/dev/old_disk of=/dev/new_disk conv=noerror,sync
"conv=noerror,sync is used for disks with bad blocks, where the intent is to replace bad blocks with zero placeholders and continue copying."
There is also a utility called 'ddrescue' that has been made specifically to recover damaged hard drives.
https://www.cyberciti.biz/tips/how-do-i-save-recover-data-from-crashed-disks-with-dd-and-ddrescue-command.html
Keep in mind that this is not going to work if the drive heads or board are failing physically.
If the board is going bad you have the option to find an second drive of the exact same model and swap the circuit boards.
If the drive heads are stuck or dragging your only option is to send it to a data recovery specialist. (Usually about $700+ dollars depending on the service.)
If you hear any kind of grinding noise when the disk spins up, turn it of immediately or you risk ruining the platters inside completely.
If the board is going bad you have the option to find an second drive of the exact same model and swap the circuit boards.
I think this is the issue Thanks