It's hard to say without seeing some more of the code, but I note that eval executes the string within the current package. Thus, I suspect your problem is that LaunchMod starts with package LaunchMod;
, and the code inside the eval is executed inside the LaunchMod package, setting $LaunchMod::me rather than $main::me.
You can fix this by specifying the appropriate package somewhere... The Code file could start with package main;, or you could stick "package main;" onto the front of $code before evalling it.
It may also be worth considering doing away with the use of globals altogether, passing $me into &CodeMod::MySub rather than depending on it being in a specific package.