Don’t use multicast. All of your movement variables should be set to replicate, so when the Client crouch RPC is called on the server, those values are set and replicate out to all relevant clients.
Client presses crouch button->RPC (run on server) updates movement values and state->those values replicate
Multicast should be used for one-off events like explosions. State values should always replicate.