Não há uma resposta simples. Dependendo do valor dos dados, você pode querer levá-lo a um especialista - já que o que proponho tem riscos e pode piorar as coisas.
Obtenha um disco pelo menos tão grande quanto o moribundo e uma chave USB. Coloque uma distro Linux na chave e use (gnu) ddrescue para fazer uma pequena cópia da unidade. O Ddrescue pode reiniciar de onde parou quando ocorre uma falha, ler para frente e para trás e, geralmente, obter tantos dados fora do disco quanto possível.
Existem alguns truques antigos que funcionaram para mim no passado. Coloque o disco em um saco Ziploc (para evitar a condensação na eletrônica) e coloque-o na geladeira. Muitas vezes isso aumentará seu tempo de leitura. Repita conforme necessário. Uma idéia ainda mais cont útil - que eu não tentei e não recomendaria - seria colocar o disco no forno em baixo - isso pode teoricamente refluir a solda e consertar alguns problemas.
A compra de um disco semelhante e de controladores de troca pode funcionar, mas não necessariamente - informações de chave de armazenamento de disco nos controladores e, quando você troca controladores, obtém informações erradas.
Meu palpite é que o disco está em grande parte intacto, mas o controlador tem problemas.