1. just send the frame/variable in the message to the other player when your player is created. then every player has the variable that defines the color/image
2. Make sure you use a server in the same region as you are. and also that all players join the correct region. You will always have some lag for multiplayer games though.
3. if you want the players to keep their inventory when they disconnect and reconnect another day, then yes you will need to save the inventory somewhere. ether locally or on a server. But if the inventory only exist in the current game you can just use variables and send updates to the other when values change.
Always try to send as few messages as possible. Only send messages when something actually is changing, do not send stuff "every tick"..
Good luck! :)