This appears to be a namespace issue. If you eval(:-Proc1)---to use the OP's example---then what is evaluated is Proc1 as defined at the interactive level, not the one defined in the module. Consequently any changes in the module do not carry into the eval.
What you want to write in the module is
and then, at the interactive level, call (after the with(myModule);)
to execute MyProc.
may then work.
Alternatively you can call
but even then you'll need the restart to update MyModule.
But I use restart nevertheless. Too much junk is left behind that tends to confuse me & make debugging extra-difficult when I don't.