We almost bought a new DI because of a faulty compass! The compass seemed to have developed a massive error E-W but nothing N-S, and we didn't know it.
We'd be flying and setting the DI then turn through S and the DI would be 60 degrees off, it was like this for quite a while as we thought the DI was on its way out and drifting.
We then started flying on the GPS track and ignoring the compass and we then figured out from the GPS that it was in fact the Compass that was way off and so we borrowed some swinging compasses from our maintenance place. Sure enough, 60 degrees of error through E-W, 0 degrees through N-S. I hate to think what would have happened had we had to dead reckon somewhere!
Can you not set the GPS to give magnetic heading, and fly in zero wind and use that to calibrate the compass?