Joe- The gearbox revision looks pretty cool! But as you've no doubt read here, there are a lot of ways to approach the bias issue. I'll share our typical method here.
Every year as SOP we tach. all of our CIM's fwd & bwd -straight off supply- before assembling them into a drive unit, I don't think
we've ever had one with same RPM in both directions. We then match the motors by RPM, or sets as best as we can. There are some differences that do level out, and as someone noted earlier, older motors tend to show more variation -based on our data anyways.
Once the robot is fully assembled, we again use a tach. & check for friction. Then after some intitial driving (which most always has some bias and the drivers complain) we adjust the output commands (in software) for the fwd running motor down until free speeds are nearly equal. Then live test again on the surface to confirm or adjust further (then the drivers are happy, and lose an excuse for not driving straight!

). From there we may again tune, but it's usually close enough. We have only installed encoders when more precision was required, ie. placing, errr trying to place, tubes in 2007, or runnning laps in 2008 in auton.
This year, we detuned the forward AM-GEN1 side a straight 4% throughout the scale all the time. For what we were doing, this worked well enough and the robot was pretty repeatable.
Closed-loop (encoders) when practical and within your resource capabilities are almost (IMO as a robotics engineer) always a better method if you can control slippage on the carpet or surface. Not only that, if you have a good control loop, it can adjust and compensate for a multitude of sins and still keep your robot going where you want to. Keep in mind, that doing this is not always as easy as it sounds and can take some precious time away from things like practicing playing the game in teleop.