Simple rules to follow:
1. If you used Instantiate, change it to TNManager.Create.
2. If you called a function directly to do something and you want it to work on all clients, replace it with an RFC call.
3. Only the TNManager.isHosting client should be calling RFCs that do stuff.
4. Never modify local variables. Always do an RFC call to modify variables.
Follow these simple rules, and everything will work correctly.
To illustrate #4 in greater detail --
do not do this:
transform.position = Vector3.zero; // This is wrong!
Do this instead:
tno.Send("SetPosition", Target.All, Vector3.zero);
...and implement the function:
[RFC] void SetPosition (Vector3 pos) { transform.position = pos; }