This happens because you are unloading your script assembly with
"using" statement.
All examples demonstrate how to load script, call some of its methods
and unload it. What you wand is a bit different.
From your code I understood that you want to load the script and keep
it loaded until some point in the future. If this is correct then you
need to delay unloading the script (currently you unloading it
immediately after the loading). Thus you need to remove "using"
statement, keep reference to the AsmHelper instance and call
helper.Dispose() just before loading the new (updated) script.