How to use OnPhotonInstantiate to setup GameObjects?

Options

I'm making a multiplayer game with blocks that are instantiated in-real time. Using the PhotonNetwork.Instantiate spawns the blocks in the wrong size and under the wrong parent object (it spawns the objects in the root of the scene).

The following code is supposed to set the blocks' parents and scale correctly, however this change in object parent and scale is only seen by the host/master client and is not seen by the other players, so the other players see huge blocks instead.

elementBlockSpawn.transform.parent = this.transform.parent.parent.parent.Find("CompoundElements/SingleBlocks").gameObject.transform;

elementBlockSpawn.transform.localScale = new Vector3(1f, 1f, 1f);

I'm trying to use OnPhotonInstantiate to "setup" the blocks by putting it in the correct parent and setting it to the correct scale on instantiation, but I don't understand how it works (I tried to refer to https://doc.photonengine.com/en-us/pun/current/gameplay/instantiation) Specifically, I don't understand the whole setting up process (from object[] mycustominitdata.... to OnPhotonInstantiate.

The following is my attempt to use OnPhotonInstantiate.

Looking for step-by-step instructions/explanations on how to use OnPhotonInstantiate properly. Thanks in advance!