Unfortunately my tutor wasn't able to spot the problem. She suggested trying to use the function curve editor to fix the problem. I had tried this but to no success. The problem would still remain even if I deleted the key frames in the unwanted axis and kept the only one I wanted movement in.
After much messing around I finally tried to use Global rotations instead of Local rotations. This seems to have stopped the unwanted swivels. I'm not sure if I had been working in Locals from the start or had accidentally switched half way through but from now I should really check before doing anything.
If I get some free time this week or next I'm going to try messing around with this ball and tail rig in Local and in Global to see if this is actually where the problem is and if switching resolves it.
**EDIT** Scratch that, blogged too soon!! 20 minutes after I posted the same thing happened on Global rotations... guess that wasn't it!