Not sure if the WPI library was modified recently, but in 2014, when we used a regular gyro, we had similar inconsistent drifting problems. With field-centric swerve, things sometimes got really ugly.
There's a discussion about that on this thread:
http://www.chiefdelphi.com/forums/sh...62#post1399062
So I ended up writing my own Gyro code. If you're using LabVIEW, I posted my code here:
http://www.chiefdelphi.com/forums/sh...55#post1416955
Those changes definitely improved things.
In 2015, we got the NavX MXP, which offered further improvement, and worked great for our swerve last year. (and since the NavX comes with its own libraries, you don't need the code modifications I mentioned)