Update:
Thanks to this helpful forum post: LemLib IMU Scaling - Programming Support - VEX Forum
I was able to make a custom imu with a scaler of -1. Looking at chassis.getPos().theta shows the right is now positive. (How did I not notice the backwards angles) And PID issues are gone.
Hindsight 2020, this is most likely to do with my upside down mounted IMU. I didn’t think of it as I haven’t had issues with upside down imu before. Maybe the get heading command aligns with gravity when calibrated? While rotation doesn’t?
Anyway, thanks again for all the help. ![]()