Back on topic, Sparky this was me:
I'm using a custom _loadout.gsc and I never touched the coop characters setup. What could be the fix?
There is a couple checks if level.script equals various zombie maps to use the coop characters. The easiest things to do is a sub-string check like this so it works for all zombie maps: