Solved by ptrblck in post #2 
              
              
                If you set the sub-modules as attributes to the main model, its internal __setattr__ method is called. 
This method makes sure to register all parameters properly. Have a look at the source code.