Skinned mesh animation on the GPU is pretty fast (even when animation transforms are blended on the cpu) - but pathfinding on navmeshes is quite slow (typically involving A-Star or similar expanding search algorithm). Most pathfinding algorithms are happy to terminate early after N search steps (without completing the search) but I am not certain that our implementation supports this.
I’d have to see how (often) you’re performing your pathfinding, and the resolution of your navmesh, but I bet if you enable profiling that all your frame time is getting sucked up by pathfinding.
Typically, once a path has been found, the AI should be fairly confident that the found path will remain valid, and only check periodically to confirm that nothing has changed to invalidate the path. In terms of periodicity, I typically use delay values between a half-second and one second, and settle on a value that works in the context and requirements of that particular game. Oh - and make sure your AI are not all being created on the same frame, so that the computational load is spread over frames, and does not create spikes when all 50 AI try to perform pathfinding update in the same frame…