Gyro Drift

For the robot I am programming, gyro drift is a really huge issue. It is never turns exactly how much I want it to, and even if I try to accommodate the inaccuracy by changing the parameters, it is still inconsistent, because it never drifts by the same amount. I tried recalibrating the gyro sensor at the beginning of every program, switching out the gyro for another, re-downloading and re-uploading firmware, adjusting the parameters, and changing the position of the gyro (so that motor signals wouldn’t interfere). Although they worked to a certain degree, none of them made the robot work consistently, and it was never really clear what the margin of error was. Could you please help me?