Most likley the motor has halls installed slightly offset from neutral timing. The original controller either tolerated it or was designed for it (if it came with the motor), and the new controller just doesn't, so it works in reverse but not in forward. Something like Burtie's Timing Adjuster would fix that, but it'd probably be cheaper and/or easier to get a different controller or motor. Or you could mod the motor to move the hall sensors clockwise or counterclockwise (as a complete set) just a bit to change the timing.
Some controllers still have a reverse function even if ti's not wired up. You could open the controller and check the PCB for unused pad pairs. Usually the signal gets shorted to ground to activate the options. IIRC, on the old XC controllers I've had, "X3" was the reverse pad.
Searching ES for "Xie chang reverse" finds quite a few posts and threads, many not relevant; this one
https://endless-sphere.com/forums/viewtopic.php?f=2&t=29047&p=418768&hilit=xie+chang+reverse#p418768
describes some of the pad functions on that version, hopefully yours is the same.