I have just recently been through this myself.
A few things you should check:
1st, take the compass out of the aeroplane and check it on its own.
2nd, have you noticed whether it is influenced by electrical consumers in the a/c? Ttry switching things on one by one and monitor the reading. My pitot heater will cause a 20° swing!
3rd, try doing a compass swing, there are plenty of how-to guides on the net but you'll need to borrow a landing compass.
4th. try to find a professional who will sort it out for you. I tried and failed at this bit.....