electronic speed control of 3 post compound DC motor
If you were to keep the solenoids for direction switching, you should be able to use a single very-large MOSFET for speed control. 

Although the best place to do the PWM control is in the ground lead of the armature, that node probably isn't available to you. 

So: setup a MOSFET and its driver as a floating switch and place it in series with the hot end of the armature. 

Alternatively, place it in series with the battery (+) lead that feeds the solenoid contacts. 

Doing a floating MOSFET power stage isn't difficult and your PWM frequency can be fairly low - low hundreds of Hertz.