This happens because of the amount of data being transfered between client and server. It has to then get routing information for all those units, send that data back and update the server with what it's doing too.
As mentioned if you send it smaller bulks it'll manage better. I'm not sure if the bottleneck is the MC servers or the routing API.