Your code needs to be optimized for such a big number of objects. And it's not only the ZombieAI, CivilianAI event sheet is just as bad...
You should avoid using "For each" loops on every tick for a big number of instances. First, pick suitable instances, then loop through them with For each. And don't run it on every tick.
So, replace this:
For each Zombie
Zombie timer "follow" is not running
Zombit is not eating
-> do a whole bunch of stuff
Every random(1,2) seconds
Zombie is not eating
Zombie timer "follow" is not running
For each Zombie
-> do a whole bunch of stuff
Avoid using pathfinder too often for too many objects, avoid regenerating obstacle map too often. Consider making pathfinding cells bigger.
Also, your "While" loops have no emergency exit, so they can get into an infinite loop, or simply run for too long. Add another condition "Loopindex<10" to them to avoid this.
Try disabling big blocks of code to find what's affecting performance the most. Try to decrease the number of collision checks per tick (it's currently too high).
Add debug output into your events to see if they work as expected. For example, if you add Browser log "failed" into Civilian On Failed to find path event, you'll see that after a few seconds this event starts running hundreds of times on every second! Which means there is some problem with civilians pathfinding.
You may need to compromise many things to improve performance..