If I'm getting it right you didn't break it, just didn't do it right.
First - The two rounds of combat count for fights againts the same enemy. After the advance, you have another two rounds of combat. So during one combat phase, one uint can easily fight four rounds of combat- 2rounds, advance, another 2 rounds.
Second - after your unit advance into new enemy, you have to resolve the new combat immediately and only after that you can move to another combat.
So - Supposing you choose to reslove the knights and harpies vs gyro first - After destroying the Gyro, your knights advanced into the Dwarf warriors and should have fought another two rounds of combat. Only after that you were supposed to reslove the combat of your spawn and warriors against slayers. After wiping the slayers, they could have advanced. In case they would advanced into the dwarfs (supposing the dwarf were not destroyed fighting the knights or retreated too far away), they could have advanced into them. What happens next depends on the situation of the dwarf warriors. In case they were still fighting the knights the combat would have become unresolved and fought in opponents turn, as the dwarfs already fought the knights. In case the dwarfs beated the knights or the knights decided to fall back, the dwarfs would be unengaged and the advancing spawn and warriors would get another 2 rounds of fight against the dwarf warriors.