Well, I took a look at this and it's a weird one. The only way I could get it to work consistently was to rebind the datagrid on each load. I know that's not the 'accepted' way to code the datagrid but it seems to be a 'work around' for now.
On my journey today I came across this page http://west-wind.com/weblog/posts/211.aspx . There seem to be lots of issues regarding the datagrid events not firing so it doesn't really surprise me that something might not work as expected in the Aggregator. By putting the modules into the Aggregator, we're introducing another level of container around the module and this might be causing the problem. Perhaps there is a maximum number of container levels that cause the events not to bubble up. I'm not sure.
I am sure though that I'm injecting the modules the exact same way that the DNN framework does. In fact I'm using the very same method that the framework uses, InjectModule within the Skins namespace.
I'll continue to look into this and see if there is something else that can be done.
Richard