Hi Dforeman & Dforeman,
How about try removing the two extra encoder motor drivers on port 3, 4 of MegaPi board.

Also, please make sure there is no wires touch the wheels on the robot.
When you start letting the robot balance by itself, please don’t let it go immediately, you can let it go when you feel it has adjusted itself enough (help it do the adjustment with your hands at beginning if necessary). Here is a video (this file only available for seven days) to you for reference.
According to the principle of the balance robot, if it is out of balance, he needs to speed up to adjust the balance. But when the speed is fast, his chances of success are diminished due to inertia.
Sometimes, the balance robot does not adjust its balance very well. But if your robots have never kept balance for several minutes, there is possibility of the problem on mechanical structure.
Could you please try totally disassemble the robot, the assemble it again according to the instructions.
As for the Gyro sensor and Ultrasonic sensor, it is better to keep the Gyro sensor connected to Port 6 and Ultrasonic sensor connected to Port 7.
Once still the same issue after re assemble it, may we have a video chat through skype to do further checking?