Against Elven archers, use Gargoyles. Send them straight into the enemy ranks to deal damage. To ensure this happens with 100% certainty, regardless of the archer's location on the map, give the Gargoyles the following stats (speed, initiative, defense – if possible) and place them in the center at the start of the battle. If the enemy protects the archers with Ents and Dryads, that's even worse for them; your mages will shoot well, and your hero will cast Fireball. Next, eliminate the ranged units, as they are quite agile. Don't engage in melee combat; let them come to you. The Dragon will likely fly in and kill your mages, but your Titan and Rakshasa will avenge them. If it flies at the Titans, it will still run into the Rakshasa, and your mages, delighted by this opportunity, will easily destroy its entire army. It's best to protect the mages with Rakshasa and Golems, as Elves have weak magic, and only a Dragon can kill your mages. Genies fly at the Druids again, to be used as meat shields. You are left with a Titan, Rakshasa, Gremlochs, and Golems. The enemy has slow-moving Ents, decent Unicorns, and non-shooting Dryads, which will be easy to deal with.
I won't go into detail about everything that can be done here; I'll just say it briefly.
1) You didn't forget that the AI has an initiative of 14, right? Mages risk simply not surviving until their first turn, as you can't properly hide them without Tactics (and this skill is rare for the Academy).
2) If the Elf doesn't want his archers to be blocked, the Gargoyles won't reach the Hunters – believe me. With or without mini-art, it doesn't matter.
3) Regarding protection for the Hunters and Druids, I'd rather place unique units next to them. If you don't have the Staff of Sar-Iss, the chance of hitting with a spell is about 50/50. And the Ents will catch the Golems, Genies, Rakshasa, or teleport to the Titans. :)
That's all