One way to solve it is to add a layer above the form call you're doing and store the form values somewhere else and not in a variable.
When the call comes in, you check those values and return them, depending on the situation.
If you want to solve it with listeners in the process definition, you'll need to somehow keep the state in their too, and know you are passing a second time and need to do something else (to which a variable is the easiest … but maybe not best solution)