When an object variable is updated implicitly (e.g. by adding an object to a list without subsequent #setVariable call), the variable update is not propagated as a history event. The updated value is therefore not reflected in the history tables.
General problem when fixing this:
We don't know when an object is implicitly updated and therefore don't know the execution/activity instance id that is valid at that point in time. It could even be that this variable is not updated in the context of an activity at all but aside from it (e.g. in a custom command outside of an API call). So getting the history entirely right is impossible.