This is what eharper256 told me:
Simply, to give a Pirate a sword, you change one slot in there to
Class: Pirate
Weapon: Sword
Offset: 36 3A 29 27
(Offset: Weapon Anim/Head/Body/Leg or Horse, I believe, though some combinations will always fail. The animation used for Axes is the same as Swords. Some classes do not have bow and spear animations.)
As so:
The main problem is the fact that you cannot have orphan animation pointers. That is to say, you cannot have an entry at 0D stating Pirate, Sword, blah, then another one at 4E stating Pirate, Axe, blah. They must be together. You notice in the screenshot that Pirate Sword and Pirate Axe are next to each other, yes?
If you don't follow this rule, you'll either crash the game or have screwed up animations. Hence, to add new weapons, even just one or two, you'll to have to reorganise every single offset so that things fit and you cannot add without deleting due to the limited number of slots (plan it on paper!)
Some animations will not work(like if you gave forrest knights bows), but axes and swords use the same animation so you could give a sword to a unit that uses an axe, like the pirate demonstrated in the above picture. However, throwing axes have their own animations so they won't look right on some units(like forrests).