Sounds like a job for the /team command once again. Teams have a bunch of useful features including push by collisions.
You only need to run these commands once:
team add no_push
team modify no_push collisionRule never
team join no_push <target passive mob>
Any entity in this team, in particular the passive mob of interest, can never be pushed by anything else. However, it will still interact with leads, which is exactly what is wanted.
Team options have a bunch of useful lesser known features, so I highly recommend looking at the /team wiki page
You should also consider teleporting the enderman to the passive mob instead of the other way around, that way it will give you more control over the lead