L3G4200D not returning to zero when high-pass filtering is enabled

I’ve been dealing with the L3G4200D gyroscope for a couple of years now and my outputted data has been fine. Recently I tried playing around with the high-pass filtering, setting it to the smallest value available. It’s clearly working, but after a rotation the outputted data halts just before returning to zero and then takes ages to slowly correct itself back. I think an image will show what I mean best, so that’s attached.

This only happens when high pass filtering is enabled. When the unfiltered data is outputted (or even just the low pass filtered data) the signal returns to zero immediately after motion stops.

Any ideas why this is? My complete set up is below:

12.5Hz LP cut off,
Normal HP filter mode,
0.02Hz HP cut off,
block data update,
HP enabled,
LP enabled.

No interrupts used, using i2c.