Oh my... what a complicated solution to such an easy requirement.
Andy, firstly welcome to Xenforo...
As a general advice, if you want to do something after a user does something with default Xenforo, the first option to look for would be try and find the Xenforo controller which does the action which the user did, extend the controller, call the parent, do your stuff and return. Only when what you want to extend is finer action done from within a controller should you go to extend the Model and if it is further deep, what you want to do, then you go to the DataWriter.
In most simple cases, extending the controller action would serve your purpose.
In your case, what you should do is extend the
actionRegister() method within
XenForo_ControllerPublic_Register. I have the addon attached for you, tested and it works and took all of 5 mins to make.
Replace the "Hello World" with whatever it is you want to do.
Regards