You tried cleaning the heads of the drive? Cleaning disk? Swabs?
Also, the lubricant can dry up in the spindle bearings. If the disk doesn't spin at the correct RPM, you get errors.
Also make sure the track 0 sensor is clean. If it's not the drive will always think it's on track 0 even if it's not.