Well - historical games are a great way to introduce children to military history, so kudos.
4'x4' table - I'd use 'normal' age of sigmar movement. It's not so much smaller than 6'x4' that you desperately need to slow the movement down to make the game work. 6" for 'normal' infantry is fine, especially since kids would probably appreciate smaller games, and you're unlikely to have 'magic' extra moves.
a good generic starting point for stats can be found in the Tomb Kings Warscroll:
https://www.games-workshop.com/resources/PDF/AoS_Compendiums/warhammer-aos-tomb-kings-en.pdf
Whilst the move and to hit rolls are low, and bravery high, it's decent basic rules for ancient infantry cavalry, artillery and chariots.
Are you planning to use the 'new' Age of Sigmar as a base? Because as I understand it, it's bringing in stratagems, much like 8th edition
40k. I suggest that 'reactive' temporary tactics might be best represented as stratagems if that's the case.
The stats look fair enough. 3+ to hit is representative of good quality soldiers. 4+ to wound is pretty standard human (so 3+ would be stuff like dacian falxmen with double-handed weapons and/or infamously strong combatants like spartan veterans, or viking bezerks. 4+ save is fine, but with
AoS conventions should really be a 5+ with a conditional +1 or reroll for the shield. Making the condition 'base-to-base with at least 2 other models from the same unit' instantly gives you a shield wall effect, and makes the player want to move in a formed-up block, as a legionary cohort should.
Pilum rules are good - -1 rend to represent shields knocked away fits their famous role. But did they never use them when recieving a charge? I'm sure I saw something about cohorts throwing pilae at charging enemies, then countercharging after the charge was disrupted. You could demand a roll 'to hit', or some comparison of legionary numbers to enemy numbers, but I guess number of legionaries charging = number of pilum throws = number of rending attacks, so it works out.
A centurion 'champion' with an extra gladius attack would be appropriate, and possibly a cornicen - a speed increase when running or charging would be good. I might recommend a slight speed drop (4-5" move?) for legionary cohorts, because with segmenta armour, a couple of pilum and a scutum shield, they will be slower around the field than a gaul with a light shield, a spear and not much else (possibly not even clothes!).
Phalanx.....I'd do the reverse of the shields & pilum rule; increasing the attack power if in base contact with multiple models and when charged by the enemy (when an enemy unit which charged that turn within 3" i selected to attack, the phalanx may 'interrupt' and perform its attack first). For extra accuracy, give the bonus (+1 attack or something) if in base contact with 2 or more models from the same unit who are not within 1" of an enemy themselves, if all models in the unit attack the same enemy unit. Give pikes a 3" range, and that way the 2" and 3" range 'ranks' generate a shedload of attacks - meaning you want deep formations and want to avoid getting flanked.