I don't have the game installed so I cannot verify any of my claims, but if my memory is correct:
Ultra Fast > Very Fast > Fast > Average > Slow > Very Slow
During the first ever move, if two opposing units are tied in speed, the attacker's unit will move first. After that, for every other ties involving opposing creatures, the game will check which player made the previous move:
If the attacker just moved, it will be the defender's turn,
If the defender just moved, it will be the attacker's turn.
If two or more creatures are tied in speed in the same army, the unit that was located on the highest row when the battle began will move first.
A unit cannot move twice per round due to tempering with its speed through spells (a fast unit that has already moved this round, and was then slowed, will not move a second time when it will be the time for the slow units to make their move.)
-----
Attacker:
A - Average
B - Fast
C - Slow
D - Very Fast
E - Average
Defender:
1 - Fast
2 - Very Fast
3 - Fast
4 - Average
5 - Very Fast
Move order will proceed like this:
D > 2 > 5 > B > 1 > 3 > A > 4 > E > C > 2 > D > 5 > B > 1 > 3 > A > 4 > E > C...
-----
Those are the general rules regarding the moving order of units for Heroes of Might and Magic II (in the third game things get a little bit more complicated with the "Wait" option).
There are more rules, regarding summoned elementals, hasted, resurrected and cloned stacks which I am not familiar enough with to inform you about. Same goes with units that get cured from slowed, paralyzed, blinded or petrified status both by enemy attacks or the dispel spell.