I had something like this once - defrag wouldn't work, said disk had a problem, said to run scandisk. Scandisk said OK there was a problem but it was too minor for it to be worth fixing. (Duh! - wish they'd test these things together.)
I solved this by ... not trying to defrag. I've never actually seen a measurable improvement in performance by degragging anyway.