I figured out that if I made the camera a global variable the problem wouldn't occur. But that seems like it should be unnecessary, doesn't it?
That's an indication of something being wrong in your code. The engine doesn't care about where you are storing an instance or not. If that makes a difference, it can only be because the result of some operation is different. If the error goes away if you don't move the camera, that's because the cause isn't visible then and hence won't be rendered.
99.9% of these problems happens, because people are using multiple threads in a way in which they shouldn't. jPCT isn't thread safe. You must not fiddle around with jPCT related instances some anything but the rendering thread, unless you are properly synchronizing things.
If that's not the problem, check your texture assignments.
If I set Config.glTransparencyOffset = 0.00f and Config.glTransparencyMul = .01f, can I expect transparency to work the same way on both software and hardware renderers?
No. That's because the docs say that "This setting is ignored by the software renderer.". The default setting makes the OpenGL renderer try to mimic the software renderer. If you are changing these values, the OpenGL renderer's output will change but the software renderer will render the same thing.
...but you don't mention the scale of the setIntensity methods. I assume it's between 0-1, since they're floats, but I think this should be mentioned in the docs...
No, they are in the range of [0..255..]. I should really add this information.