How to stop a ZN-tuned PID controller from decaying
Poor PID implementation algorithm, or what's more probable cause is that sample rate is too high for selected precision of floating point unit. When you accumulate the float numbers, their mantissa and exponent have to be shifted to add numbers. At high sample rate, the integrator increment is very small compared to the accumulated variable, so it is rounded.