Store a private field reference to the original Initialize members, so that you can reuse them outside of the initialize (like during the NotifySaveLoaded scenario).
1. Nobody has serialized the Language/Region restriction rules into something PKHeX can understand. It doesn't check for that at this time.
2. Memory feeling was hotfixed a few hours after the last release. New legality checks narrowed what was actually legal, but code still generated unrestricted values.