Not sure if this advice will be helpful..
In my game, which is also quite a big project, I have lots of separate event sheets for different things - Audio, Background, Enemies, Shop, Coins etc.
Almost all of them have "Init()" function, which resets static variables, enables/disables groups and does other things like that.
On start of each level I call these functions - BackgroundInit(), EnemiesInit() etc.
This helps to keep things organized.
Changing state for several hundreds of groups at once doesn't seem like a good idea.
If you think it's the only way, you can try this:
Make a list of all groups. (to automate this task you can search for "event-group" tag in .xml files of the project using software like Notepad+)
On start of the game, loop through this list and save the initial state of each group in an array or dictionary.
Then you can use this data to reset all groups to their initial state.
Or you can include the default state into each group's name. For example "Player controls #D", where "#D" at the end means "disabled by default".