If you only need two speeds have you considered using a retro-direct
type system on the motor output shaft. First put a left hand threaded 1.37x24t freewheel shaft adapter mount fitted with a south paw 24t freewheel on the motor shaft followed by a 30mm right hand thread freewheel with a heavy duty 13t right hand smaller size right hand freewheel mounted. Big 50+ tooth drive sprocket made using an over-sized chain wheel on the wheel or shaft to be driven. Run the chain around the big to be driven big 50+ toother then over to the motor and around the 13t right hand outer sprocket and back to a bearing-ed idler sprocket mounted a little ways away from the motor and around that idler sprocket and back to the motor this time wrapping around the larger south paw freewheel and then back to to connect with the other end of the chain on the other side of the big 50+ tooth.
----- Motor spins CCW it engages the 13t small size freewheel and pulls the chain with it 13t/50+t reduction ratio (AKA=low gear) and the 24t south paw freewheel just freewheels going along with the chain.
----- Motor spins CW it engages the 24t south paw freewheel and pulls the chain with it 24t/50+t reduction ratio (AKA=high gear) and the 13t small size freewheel just freewheels going along with the chain.
Just take a look at the diagram on the wiki page I linked too and envision the big chain wheel on the crank as being what your trying to drive and the motor mounted where the wheel is with the two freewheels one behind the other, one a righty and the other a lefty.
Its possible and its been done before, its how the Xionda and SRAM two speed hub motors work. You just need a controller with drive direction switch reversing leads which becomes a high/low switch instead.