The host will destroy all objects on the end of layout, but say the peer switches to a new one before the update from the host to destroy is received. In that case the synced objects can carry over into the new layout at the position they were in. In my experience it is a bit random so best practice is to wait a little bit to make sure it goes through by manually destroying them first.
Any easy way to number your enemies would be with an instanced variable "EnemyNumber" and a global variable (number). Call it "EnemyCount".
On the host side whenever you create a zombie, add one to EnemyCount and then set the EnemyNumber variable to the global variable.
On the peer side (if you dont want to sync the variable) you could use the "On Created" system option and use the same technique. Might need to double check this works every time, not sure if there is potential variance with the order objects are spawned using the sync method with a large number.