The Scripter.ExecuteSubroutine executes a subroutine in current script. You need to specify the current script using the CurrentScript property:
Scripter.CurrentScript := MyScript;
Of course you need to gather MyScript somehow, if you added your scripts, save a reference to them. As for executing routines from script itself from the name, it's not possible unfortunately.