I think you need to do two things here
1) Develop a mechanism to save the state of your agents and model state at every model tick. This is known as freeze-drying data (at least it is known as this in Repast).
2) Keep each freeze-dried state in a binary-tree like structure. In this example, your root nodes become the "unaltered" timeline and any child nodes are each a possible alternative due to some altered parameter.
Even for simple models your storage requirements for holding many plausible futures becomes something that needs to be managed.
Also, how are you planning on displaying the model? The 2D rendering engine in Repast Simphony leaves something to be desired and having lots of Java Swing components pop all over your screen isn't likely to be effective. If you are willing to spend time building a custom View to render the simulations I would recommend looking at the work of Crooks especially of interest is his paper covering loosely coupled ABM's.