It seems to be a problem with Timer implementation. When some change in process occurs (such as transition or action call), the process instance should be added to jbpmContext to the list of auto saved process instances (actual saving occurs when JBPMContex.close() is called). Apparently Timer.execute does not do it and as a result, the log of all operations performed by Timer.execute is not stored in DB and getting lost.
what version of jbpm? Database etc...?
can you provide a unit test (like the ones in the source of jbpm that demonstrates the problem?