I think in monitor you might have created the transaction object only once and every time you are updating the same transaction object form the monitor.In SB after getting the transaction class object from monitor & before the SB completes the execution first transaction object received from the monitor, the monitor may modify the data in that object. Try creating new transaction class object in monitor every time before the object is updated with the new value
Regards,
Shanthi