We are facing a similar problem . . . we serialized a complex object as part of many workflow processes. The object include a member variable which was also an object, and that "child" object has been changed. Now, we can no longer deserialize the variables for those old workflow processes.
Can you give us some suggestions for how to get out of this mess? Is there a way that we can force Activiti to override the default deserialization behavior, and to deserialize the variable using an alternate object? If so, we could write a utility app and in it, create a new object which replicates the state of the "inner" object before we made the change, and create a temporary "outer" object that incorporates that legacy object . . . deserialize to the temporary outer object and then re-serialize with the updated version so that normal deserialization will work. (And in the future, I think we'll stop serializing complex objects.)