The first thing that made me think the problem had something to do with PID was your performance data graph.
It doesn't necessarily have to be within your block diagram of your code to be running. In RobotC the motors and sensors setup has a built-in PID control function. Which I have personally noticed does not allow the motors to reach a speed past 65%.
In RobotC the run to position command is the same as our Encoder-target command. We assign a fixed motor power to move the motor to the specified target. The motor uses that speed as the maximum "allowed speed." It then begins to approach the speed based upon Proportional gain. The Integral is defiantly what you see on your graph where the curve is created approaching the set target. Then if you notice there is a oscillation there is your Derivative.
Here your problem is noted basically on how the PID is based.
Speed = ⌂ANGLE/⌂TIME
There is a line of code in RobotC to fix this though and there should be a similar code in LabVIEW.
nSyncMotors = motor[motorD] && motor[motorE]
My first thought is that LabVIEW DOES have it's own PID algorithm running in the motor.vi. In RobotC this is the case.