GL's MODELVIEW_MATRIX is relative to the viewer, so it changes if the viewpoint changes, which is usually not useful! If you read it back, you got your ships transform relative to the camera, but not to your "space".
It would be quite cleaner if you manage your ship's transforms inside a Matrix4f only and apply it as whole with GL11.glLoadMatrix. Somewhat like
Matrix4f transformMatrix=new Matrix4f();
...
GL11.glPushMatrix();
---now update transformMatrix with your ship controls
transformMatrix.store(matrixBuffer);
matrixBuffer.flip();
GL11.glMultMatrix(matrixBuffer);
---draw the ship
GL11.glPopMatrix();