I was thinking the units should move at the same speed and stick in the same relative position to each other when moving as a group similar to other modern games.
Right now, all the units try to get to the target clicked cell , which is a little unrealistic but a much simpler solution. It's also kind of frustrating as the units keep running around trying to get closer to a central point, when you may have put them in a formation initially
This might be difficult to achieve, because unlike games such as age of empires 2, units can't cheat and move out of assigned cells or move through each other but i think something could be done
As you already mentioned, this flocking algorithm you're talking about is usually implemented in games where units can move freely. What I thought about is setting a different target tile for each unit such that their relative position remains the same. Problem with that solution is that units cannot be ordered to meet at a certain point: Think about selecting units in the field and a new unit at the base; when you order them to move to one tile the unit from the base will keep its relative position. I think some kind of heuristic is necessary when to obey to the formation and when to concentrate at one spot. Maybe you have an idea?
You also mentioned a unified unit speed in groups: This was implemented some years ago but felt quite unnatural. The speed of all units was the speed of the slowest unit. Consider a group of siege tanks and raider trikes. The trikes were moving at the same speed as the siege tanks rendering near useless as they lost their main advantage: Quickly approaching the enemy. The speed was even more reduced when one of the tanks was seriously damaged.