There is one weird thing, though: Some template varables set in the module are not visible when calling
This has been explained before (just yesterday in another thread... but I will do it one last time).
You are using the wrong $smarty template object.
CMSMS 2.0 as previously advertised takes advantage of the fact that you can create a new smarty template object inside of another one... and variables are not automatically copied from a child to a parent. (Though variables are copied from a parent to a child when the child template is initially created.)
In module actions the $smarty that is provided in scope may (and probably does) represent a different smarty template object than the global smarty template object.
In your plugins, UDT's, and module actions you should not be using the global smarty object, AT ALL, anywhere. This is not necessarily new to CMSMS 2.0, the $smarty variable was in scope before in UDT's and module actions. In plugins it is the second parameter to the plugin function, so it may have a different name (either $tpl, $smarty, or $template) ... but the purpose is the same.