if (!isLocalPlayer)
return;
в
private void Update()
точно не нужен, а в
private void FixedUpdate()
точно нужен?
Вдобавок, даже если все проверки на то, от локального игрока берём поступающие команды или от сетевого, произойдут успешно - всем присутствующим "куклам" будут пытаться отправиться (и выполниться) все команды подряд, что (отчасти - отсутствует проверка для горизонтального движения) и произошло на последней трети видео.
Нет указания, какой конкретно инстанс "куклы" будет двигать полученный инпут.
Либо что-то помешало его выполнению - NetworkBehaviour, насколько я знаю, сам по себе соответствие "инстанс объекта" <-> "локальный/нелокальный игрок" не устанавливает, значит, где-то должен быть ещё код, который это делает.
Больше невооружённым глазом аномалий не вижу...