When in your code does this happen?
Does your PStraight work as intended?
When your robot veers off path during straight does the robot correct itself or spin in a death spiral?
What variables are you outputting to the brain display so you can see what the robot is thinking?
How could you use those to help diagnose what is happening?
So it looks to me like you’re spinning each motor individually? It would be way easier to set up a drivetrain preset in the code, so that you could use the turning functions. You are using a while loop here, which is probably the culprit. Try making sure your expression doesn’t stay false. You could print the state of the bot on the brain so you can see what’s going on