You have to change the way to do your logic. If I understand correctly, you instantiate an object that has a TNObject script attached, but the actual scripts are on child objects? I assume the issue you're running into lies in the fact that you have several similar scripts on sub-objects, sharing the same IDs.
Instead you need to go through the central location -- through a single behaviour attached to the same game object as your TNObject script. Then either create different RFCs, like SetPlayer1Data, SetPlayer2Data, etc, or SetPlayerData passing an array of player data instead.