Chris - our "kludge" is this - keep checking the gear tooth increase. If it doesn't increase for a tick, then check if your pwm's are below 127. If so - it's pretty likely you're in reverse.
Then you can close your pid loop. That's how we're working it now, but I don't like it because I know there should / has to be a more elegant solution that doesn't use the software like this.
The pulse width is the same in forward or reverse for this year's gear tooth sensor. That's what broke our original shot at doing it (we did it with last years, and there WAS a difference then)
