The global question, "add behavior at runtime", has a simple answer : no, at least impossible right now with C2. In most case, behavior can be enabled/disabled, but not in your particular case.
I see only 2 ways of doing this, both requiring maybe quite some implementation, depending on your project/project size.
The first one would be to use families, and have 2 objects in it : one with the persist behavior, the other without it. You could replace all the occurence of your pseudo-persisting object by the family in the events, and you would have to "transfer" the datas from the persisting object to the non-persisting one (or the other way) when you want to change the persist behavior.
The second one would be to use the load system. Every object that is savable has a "toJSON" function, letting you store your object in a string. There is also a "loadFromJSON" function. So you would have to remove the "persist" behavior, and save/load at each start/end of layout, depending if you want the object to persist or not.
I would personally try to use the second options that seems more... implementable whatever the project.