Okay, so my problem is with your second paragraph. The action editor shouldn't be referencing the selected widget directly. It should only get the values of the selected widget to pre-populate the inputs. The new values should be self contained within the Action itself. The way you have it doesn't allow for multiple actions.
Looking at your code, I'm not sure how you would get this to work the way I'm saying. But if you still don't understand what I'm suggesting or the benefit of it, give me a call to at least clear that part up.