You would have to design it so it could not get stuck in gear...
1. You would have to ensure you have enough torque at the highest gear to move the robot from standstill. If you want to go 25ft/sec, will your motors be able to get you going if you are not shifting up.
2. If you get pushed and want to shift down, you will either have to back up to shift, or have a pneumatic clutch release the wheels so you can shift
Another problem you have is that 21 gears is far too many for a driver to handle (ours has a hard time with 2 sometimes). But, if your programmers are up to it, fully automatic.
I see any system based on a bicycle derailleur gear as being far more complex then it is worth.
Our four-speed was based on two two-speeds in series (see
whitepaper), so you could add multiple two-speed transmissions in series until you had "enough" gears. We found four to be enough, and we have not used more than the three provided by DeWalt transmissions enough since, and have recently used AndyMark transmissions which have two gears.
About the CVT, the 217 "CCT" is not a true CVT, it provides infinite variability but does not actually change the output torque - It is a planetary transmission with a motor on the sun and ring gears (with the ring driven by a non-backdrivable input, they used a worm gear). The sun provides the power, and without the ring spinning, it is at a fixed ratio. They then powered the ring gear to increase the ratio, but since they are adding more power (to spin the ring) to make it go faster, the torque is still the same.