I use a number of different methods but they all involve some fairly expensive gear.
Usually if you have a faulty head, you can disable that one but read back all the data from the good heads and create an image (albeit missing the data from the faulty head). From there, you can do a second pass using just the faulty head (reading back very slowly and disabling the drives ECC features) to "fill in" as much of the missing data as possible. Failing that, it usually involves a platter/head assembly swap.
I also find reading data backwards on failing drives can be particularly effective.
Again, these methods involve specialist hardware, but I thought I'd share some of the methods I've personally used.
EDIT: I've also sent you a PM.