Hi Rob, don't envy you this situation.
As far as I can see, the FK issues are because at no point does the script insert into the sysschedules table, this is required before inserting to sysjobschedules.
The local/multi server issue I'm not sure on, sorry. (Originating_)Server_id field in sysjobs, sysjobservers and sysschedules would be the first places I check though.
Cheers
Gaz