Ok, im confused. Can you paste here repair log from terminal? And add some comments what should be and what actually is and why.
What do you mean by it breaks first byte of ship signature? „1E” is permamently erased or it takes some random value?
Can you test fuse doctor with some other chip (some avr) to tell its working ok? Because there may still be some shortage on the traces. It seems like addressing issues, like its pushing fusebyte into the lockbyte address.
But wait, you connect it to ISP programmer and read fuses successfuly, so i think SPIEN was enabled by fuse doctor (because it works with isp programmer), but the problem might be in usbasp / avrdude / GUI. Some of software might work ugly with those old chips, beacuse they have a bit different address for fuse/lock, and this might not have been really tested.
And those AT90, are they DIP, or SMD which you connect with cables without desoldering?