I don't understand, why not simply use some a transistor to drive the MOSFET input to 18v? You may need two to drive it "totem pole" style.
The opamp should have worked, albeit part-count overkill, if it was generating the proper voltage on the output. Can you confirm there is no short or something on the mosfet input circuit that is overriding any input?
If you use relays won't you have to add transistors to drive them anyway? ..and the post about PWM with relays is right, not possible. You'd basically only be able to drive the motor full forward or full reverse, no speed control.