Doing up my readpass2 CopyNonDef's right now, and I noticed that in TechInfos you ensured that the OR and AND arrays were set up during readpass1 for the sake of the CopyNonDefs to happen later. But much later in the file when I get to Projects, you actually have some checks in place to ensure that ProjectsNeeded does NOT exist at all. It really seems like this setup forces the ProjectsNeeded to completely overwrite anything previously loaded. And shortly after that in EventInfos, AdditionalEvents, EventTimes and ClearEvents are completely ignored by CopyNonDefaults, which seems to state that they wouldn't ever load properly at all.
Anyway, not 100% sure I am reading these all correctly just yet, but I think I have a fairly good grasp on what is going on with them, and it really seems like they don't work quite right (and Projects isn't used much, so might not be noticed yet, while events are always a bit hard to tell if they are working properly AND the tags are seldom used, so won't manifest errors that anyone would notice without watching for)