Good advice. The highest-charisma villagers should probably be Marshals, Bards, and Dragon Shamans, but have a bunch as Clerics go out and collect undead servants in the days leading up to the battle. As said above, making the Kythons fight a lot of undead is your best chance. Have any Wizards you have use Control Undead, too. Put the biggest mob of mindless undead you can make around the town before the Kytons show up. No, bringing more undead into the picture isn't safe, and you should accompany the villagers on their undead-collecting trips to make sure they don't get killed, but you need more meat shields. I propose the following for defenses:
First layer: lots of undead surrounding the town. If they're under your control, great. If not, they'll still fight the Kythons.
Second layer: a wall tall enough that the undead can't get over it, if building one is at all possible. (important)
Third layer: spike pits, for anything that gets over the wall. If you can pour Holy Water into them or light them on fire, so much the better.(optional)
Fourth layer: a wall around the town itself, as high as you can make it. (very important)
Fifth layer: more spike pits, directly behind the wall, so that anything that climbs over it falls in and gets impaled. Again, adding Holy Water of fire would be good if possible. (important, but less important than the walls)
Sixth layer: Fill the streets with rubble, to create difficult terrain. If you can light lots of stuff in the street on fire, good. Even though the Kythons have fire resistance, it'll help (but, because they have fire resistance, don't take away resources from your other preparations just to make things burn because it won't help that much). (optional)
Finally, put everyone on roofs and focus on ranged combat. If you can destroy the stairs in all the buildings and/or completely block their doors, good. That might not stop the Kythons from getting up, but it'll help. Have your Wizards cast Grease (and if you have Druids or Rangers who can cast it, have them cast Spike Growth) on the outside walls of all the buildings. Cast it on the outside of the external walls if you can make it permenant, and on the inside walls too if you can make it permenant there. Or, better yet, just cover the walls in actual grease. That doesn't take a spell, and a village should have some grease around. If I remember correctly, Kythons can climb walls; if I'm wrong, you can disregard that.
As said before, it is critical that the Kythons fight as many undead as possible. You have a bit of a problem in that you don't want the Kythons to interpret you as a threat, but you want to kill them. Whatever you choose to do with the ranged-fighting villagers on the rooftops, have them attack the Kythons exclusively, ignoring the undead, and if possible have them focus fire on individual Kythons at a time, starting with the largest. However, if possible, you should only attack Kythons that are actively trying to attack your villagers. You don't want them to consider you a bigger threat than the undead.
Does Confusion work on Kythons? If so, use it.
If it's possible for your wizard or archivist to use a save-or-die spell or Dominate on the Slaymaster (with a scroll, perhaps), do it. The Slaymaster is the single biggest threat. You want it out of the picture if possible.