I have a HMC5883L which gives sensible results when measuring the earth's magnetic field. This is with the Adafruit library and demo program.
If I bring a powerful magnet towards the sensor the measurement climbs, plateaus then decreases (it doesn't change sign). Moving the magnet away sort of reverses the effect, but not entirely. Subsequent measurements don't seem trustworthy. It does eventually give sensible values. Reducing the gain of the device doesn't seen to change the behaviour, just the working range (max 8.1Ga).
The datasheet doesn't talk about what happens when you exceed the ± 8.1 Ga measurement range. Is there some sort of recovery time or hysteresis effect?