Here’s the thing about Misdirection: sometime between MoP and Legion — I forgot exactly when — it received a rather substantial nerf, but the tooltip has never really updated to reflect that clearly.
Here’s how the old MD worked, from BC to Cata: it would totally and permanently transfer your aggro to whoever you cast it on.
The new/current MD, as of now, works by temporarily transferring your aggro which ends as soon as MD expires.
So in order to understand how MD works, you gotta think of aggro in terms of an “aggro table” or “aggro chart” (a la damage chart). Usually a Hunter would cast MD immediately before casting anything or cast MD right before pulling out all the heavy nukes in order to optimize the MD.
In other words, if you’ve already got high aggro, casting MD onto your pet is not a surefire way to peel mobs off you unless you do one of the following: use all of your big CDs to build up aggro in that 4 seconds’ time window (which is temporary anyways; after MD fades, the mobs are gonna come right back to you), or you use Feign Death to totally wipe your aggro table.
Ultimately, the most efficient way to use MD is to time it so that you’d have it up on your pet while they’re using taunt (since MD makes it easier for the pets to grab mobs; MD sends the mobs to the pets, which then uses Growl/other taunts on them) or time it very carefully that when your MD comes down, the pet’s taunt would be ready to be used, and use your heavy-hitters to build up aggro fast while still using MD… and then casting Feign Death immediately afterwards to drop all of your aggro.
It’s certainly tricky — I’ve hated the “new” version of MD ever since they changed it — but with a bit of practice, you’ll get it down pat!
Edit: here’s a handy tip for dealing with large groups solo — before pulling, cast MD on your pet and hit them all with Multishot. If you’re MM, follow up immediately with Rapid Fire (use Double Tap if you’ve got it). If BM, just use Multishot to get Beast Cleave up, that’d help your pet grab aggro fast.