You're right about order of rotations influences your final orientation. In fact, you can achieve any orientation with rotations around only two axis'.
However, in this case, that was not the problem. In fact, for this particular application, you actually WANT the two remaining axis' to change when you rotate around one axis. Regardless of which order you rotate the ship, you want +x to always be the ship's right, -y to always be the ship's up, etc. You used the rotateX and rotateZ methods because you assumed, just as I did, that these methods rotate an object around its own x and z axis'. But in fact, that is NOT what these methods do. What they really do is rotate an object around the WORLD x and z axis' (which never change - they are always 1,0,0 and 0,0,1). They do NOT around the x and z axis of the object. So in other words, we were making an assumption about how jPCT works, but unfortunately we were wrong about that assumption.