I figure it won't matter since collision detection for a player entity happens on the client that owns that entity.
Okay, I wasn't completely sure on that. That will make it vastly easier, then.
And the movement updates need to include the stance anyway, so other clients can display you properly.
No, that's not true, it would be inferring it. We don't need the stance at all, that can be inferred by the movement actually happening -- except for crouching. For that we would need not just the position, but also the Y-axis attempting-to-move value. Between those two we can figure out if you're trying to duck, versus if you're just falling (since ducking in midair would be a thing, etc).
You would need to be able to have it change the collision box without changing the entity type for it to not be kind of insanely-expensive-for-a-duck-feature, though.
That part is no problem, because we're already doing that in other cases such as with the miniaturize spell. Frankly we also need the collision box to shrink when you jump, as currently it does not. Sounds like this shouldn't be as big a deal as I thought it might be, though, so that's good.