You'll want to take a different approach for this. Rather than trying to change the players' positions based on who the local player is, move/flip the camera to orient around the local player. Here's one way you could do this:
Create a component to attach to your camera:
using UnityEngine;
using System.Collections;
public class PlayerCamera : MonoBehaviour {
[SerializeField]
[Tooltip("How far to offset the camera from the local player's starting position")]
Vector3 offset;
public void OrientOn(Transform target) {
transform.position = target.position + offset;
transform.rotation = target.rotation;
}
}
Then add something like this inside your player's NetworkBehaviour:
[SerializeField]
PlayerCamera playerCam;
public override void OnStartLocalPlayer() {
// This will only be called on the local player
playerCam.OrientOn(transform);
}
You'll want to tweak offset to suit your purposes, and may want to make some changes, but this should make sure the camera always starts oriented correctly in relation to the local player.
As a side note, you'll want to make sure your player movement is all being done with localPosition instead of position. This will make movement work correctly independent of the player's actual facing.
I'd recommend giving the NetworkBehaviour scripting page a read. It's a great starting point if you want to figure out the guts of UNET. The Network callbacks and server/client functions sections in particular are quite useful.