Glad to help!
Gyro drift depends on temperature and other factors, so it can only be temporarily corrected. Also, the magnetometer is extremely sensitive to stray magnetic fields, or magnetic materials in its surroundings, so no correction can be perfect.