Finally managed to locate the cause of the issues with the spine when the dragon was rotated to face in a different direction. The base bone in the spine was flipping by 90 degrees whilst the others remained fine. It was due to creating the spine as an IK spline set up and wiring the rotation handles to controllers. Although this set up works fine in an upright spine, it appears to cause the handles to rotate strangely when the spine is horizontal. I have deleted the IK and re-linked the bones together and wired the controllers back to the correct things. Hooray for a working spine.
I also realised that my centre of gravity controllers were not set up correctly. As I had placed them above the dragon, I was causing the dragon to rotate around the pivot of the controllers and not the pivot of the dragons hips. Some extra point helpers and a few extra position and orientation constraints have fixed this. Also hooray!