Unfortunately when your abstraction initializes itself, something you are doing is setting the dirty flag. This means for each instance you'll get a dialog asking if you want to save the changes. (I think it's because you are sending a donecanvasdialog message to a canvas somewhere.)
This is on Pd version 0.42.5-extended in Ubuntu Hardy.
this stops happening in Pd 0.43 (thanks to a request to MSP), btw