Well, the shaded surface plot is actually being created as an image in the z-buffer, so this could be a z-buffer problem. The z-buffer has known character size problems. This could be a manifestation of that. Is there any chance you could ditch these direct graphics routines and use object graphics? These routines, my cgSurface, for example, are MUCH better in the 3D world than the 2.5D world of direct graphics. Or, you could try adding your axes after the surface is created. See the Hidden Surface Plot example at the bottom of this page for an example of how that is done.
http://www.idlcoyote.com/gallery/index.html