Как переписать данные с проблемного HDD?
Не в софте дело. Диск неисправен. Скопировать самые важные данные и распрощаться с диском.
Можно копировать посекторно (все 320гб диска), например, через WinHex. Но не думаю, что будет стабильнее. Как только диск натыкается на нечитаемый сектор, он запинается в попытках его прочесть. Отсюда и зависания.
Это ещё повезло, что хоть как-то копируется. В большинстве случаев, диск просто дохнет и перестает определяться. Вообще.
Взять Clonezilla. Копировать по секторно на другой хард. Скорее всего там есть галочка близкая по смыслу "продолжать, если ошибка чтения". 
Если нет, то берем любой linux-live cd, грузимся с него, запускаем терминал  и даем в консоли
dd if=/dev/sda of=/dev/sdb bs=64K conv=sync,noerror
где
sda - глючный хард откуда копируем
sdb - куда копируем
П.С. 
таким макаром можно клонировать любые системы