(At least my tactic looks okay when I compare it to the playthroughs I have watched on youtube.)
Did not see you play so I don’t know if your tactic is good or bad. If your team of 9 mercs with 40-50 armor got wipped out by 10 skeletons then it’s not because your tactic is bad. I would have likely lost that battle to. Your mistake was to fight that battle in the first place.
Direvolves can be pretty dangerous if you fight them unprepared. Even later on in the game. So that was simply bad luck.
One thing that I believe helps in combat is to approach it sort of like a chess: Don’t think just in terms of skills and hit chances. Think in terms of weaknesses too. Try to use your advantage against his weakness. For example in the battle with auxiliaries. First look which of them have shields and which does not. Position your flails against skeletons with shields and concentrate everybody else against skeletons without shields. Take the out first. They are easier to hit and they are more dangerous because they will attack 2x, while those with shields are likely to attack only once and then shield wall.
Also pay attention to the turn order. By using wait order you can manipulate beginning of the battle to maximize your advantage. For example, enemy poachers and marksmen have high initiative and will move first in combat. When enemy turtles, his crossbows will be out of the range, so AI will order wait on them. If you will move on your turn towards his line, they will take a shot at you at the end of the turn. However if you will wait your turn as well, they will run out of their turn right after without being able to fire. Then you can move your units while enemy crossbowmen will get one less turn to fire at you. That one turn might be difference between you taking or not taking casualties in that fight, because enemy will get to fire 2x right in the row. First at the end of the turn one and then at the beginning of the turn two. You won’t be even able to move your badly injured mercs out of the range if they get hit in the turn one.
In general, moving last in the first turns of battle is advantage, because you want to close the distance at the end of the turn and thus deprive enemy of one round of combat. On the other hand you want to have last move in the turn enemy reaches your line. It works both against ranged and melee (ranged obviously does not need to reach your line in order to initiate the fight). Of course there might be exceptions. Anyway, always pay attention to the move order. Try to deprive enemy of the first round of fight if you’re the one attacking and prevent enemy from doing the same to you if you’re defending.