One of the things about allies in crawl is that they (for the most part) aren't terribly sturdy, Typically I play with my allies acting as "additional attacks" rather than as blockers (unless I need to block LOS from something)
Letting your zombies take the lead and following them up often get them killed quickly and ineffectively, as you noticed.
What I find works better is if you take the lead and let your zombies use attacks from the sides, e.g.:
This greatly increases your offense, while doing pretty much nothing for your defense, so when I'm using zombies like that, I will invest a slightly more into my defenses, and not as much into offense (I'll also often be using slightly lower level spells than I *could* be using, because I'll be using non-0-ER body armor earlier than I would with a more "pure" spellcaster)
If you watch for it, you'll notice that zombies also don't really attack until:
1. They are attacked
2. You are attacked
3. You attack with a ranged or melee weapon
You can take advantage of this fact and use it to position yourself and your zombies as you see fit, if you want your zombies to advance to attack something chuck a stone at it, if you don't, zap it with a spell (I think wands work for this as well) this lets you draw the creature towards you and your minions.
You can also use this fact to temporarily "park" your zombies by attacking a plant or something, while you go fetch a nearby baddie for them to chew on.
Other things you can do with zombies:
Zombie bombs are effective if you should get inner flame, be aware that though that they'll often take out a fair-sized chunk of freindlies.
Swapping with zombies to create gaps for fleeing is a good tactic
Zombies can give you distraction stabs (short blades pair reasonably well with allies in general because of this)