Thanks for the advice Brenden, I think I'm doing something wrong but you definitely helped with the final solution, so you deserve some Kentico happiness.
In the before event I'm adding the "value before change" to the OrderInfo custom data field and looking at it in the after event then removing it.
It looks almost like the system is committing/loading the values from the DB and in the on-load event the OriginalValue is set, by the time the after event has fired the values are appearing to be always equal.
Cheers though for the assist.
John