Is this Multiplayer movement logic correct?

You can achieve this in several ways.

Simpler method:

Or if you need to replicate a variable (using RepNotify):

You change the variables first on the server (not multicast). And for max movement speed you need to change it on the server and client side (as shown in the first example).