The problem is that in each group, you have something that is a duplicate event with a previous group. So, if group 1 and 2 are both on, then the on OP and similar events in group 2 will not work because they are being done by group 1. You can't have a duplicate event in the same script.

Example:

This is okay:
on *:text:hi:#: { }
on *:text:bye:#: { }

This isn't:
on *:text:*:#: { }
on *:text:*:#: { }

That said, you can use $group in IF statements and merge the on OP events together and the other events that are duplicates together. You'd want to check if a the first group is on, then do the first on OP event you have there. If it's off and the second one is on, then do the second on OP event. That sort of thing.

Of course, at that point, groups may not really be that helpful for you because there are other methods of doing the same thing just as easily. But that is up to you.