Spark Max CANPIDController issues while driving

We’ve been experiencing drastic problems when driving the neo’s using the onboard PID Controller (in addition to the problem where the encoders return 0 once in a while).

Here is the setup:
Initialize each Spark Max individually, create a CANPIDController for each, set the P (about 0.001), I (0), and D (0) values for all of the 6 motors (3 per side) to be the same. Then during auto periodic, use setReference(200, ControlType.kPosition). This results in this very weird video and graph for the encoder value:

Any ideas for this weird behavior? (Notice the spikes in the graph, never reaching the target of 200).

That’s definitely weird. Can you share the code you used?

Look specifically at, systems/, components/speed/, components/encoders/

Sorry in advance for the code not being that organized yet.