This is a WC3 game engine limitation on how units move.
Movement orders themselves do not actually make a unit move. They instead schedule the unit in the path finder. The path finder is then responsible for computing where a unit moves and does so in the form of micro-movements. A micro-movement is a simple finite vector (angle and magnitude) that represents a valid movement required to reach the destination. As the unit moves the path finder generates them new micro-movements relative to where they currently are and so lets them do things like go through mazes or around corners.
The problem you are having is with the path-finder. I quite literally mean units are scheduled in it since it will only generate a finite number of micro-movements per player (each player is independent) per second spread evenly across time. I believe it is one unit per internal frame.
This means if you have only 1 unit moving for a player it gets silky smooth and highly optimal movement. However if you have multiple units moving then each gets less regular micro-movement update as the moving unit count increases. The game can cope with this since micro-movements do have a distance so will be valid for a time, but this is where the problem starts.
1. Micro-movement length is not very long. Even in open terrain it is only enough for a second or two of movement. In complex path areas like a base it can be considerably shorter. Faster units do not get longer micro-movements so make the problem worse. If the period between micro-movements exceeds the duration of a micro-movement by a unit then the unit is forced to stop and is unable to move until the path-finder schedule arrives at him and generates another micro-movement.
2. Unit on unit collisions terminate current micro-movement prematurely to prevent embedding of units inside each other. If a unit on unit collision occurs during movement the current micro-movement of the colliding unit is discarded. This further enhances problem 1 by lowering the duration of micro-movements.
3. Problem 1 and 2 result in exponential decay of unit movement due to their positive feedback. Problem 1 means that not all units can move at the same time for large numbers of units. Problem 2 means that units that are not moving will stop units that are moving pre-maturely. Since a group (army of units) is tightly packed the problem is amplified since the not moving members of the army will block the micro-movement orders of other members so that they are shorter than intended. This is iterative since those units are now stationary and will do the same to units behind them. Over time this forms the typical troop worm (where units arrive slowly in single file) that most WC3 enthusiasts must have seen in an LoaP, TD or Hero Defence at some stage of their gaming life.
Solutions? There are multiple.
1. Use fewer units. This is the best solution as WC3 is not designed for large numbers of units. If you limit a player to 50 (maybe 100) units this will not be a problem. Using a lot of units is considered poor game design.
2. Use more players. Instead of having a single player own 200 units that can barely move, you can split this across 2 players so that they each have 100 units that move considerably better. Not always possible, especially in 12 player maps where slot limit is already a big problem.
3. Simpler terrain with less complex path map. Generates longer micro-movements so more units will be able to move at the same time. Might not be possible in forest maps.
4. Smaller unit collision size (preferably no collision). This reduces/removes problem 2 greatly increasing the limit on moving units. This is how good TDs can have so many units moving at once. Allows unit bunching/stacking with might not be acceptable depending on gameplay.
5. Slower units. Micro-movements will last longer and so allow more units to move at the same time. Might not be possible depending on gameplay since people hate slow it appears.
6. Upgrade to SC2. Unlike WC3, Blizzard put in a super path finder for it which can handle unit on unit collisions more gracefully and has far superior micro-movement generation with no real limit. More resource intensive, yes, but at least a single player can move 400 zerglings into a base where as in WC3 they may eventually arrive there before the end of the century and will arrive in harmless single file.