Any object with instances that need to be differentiated per peer should have an instance variable to identify it - this is usually what the peerid is used for.
Animations are not normally synced. All animation should be handled locally on each client. There are a few ways to go about this.
Cleanest way is to set animations locally based on the change in position or angle of the object (because position/angle is already synced). This works for movement style animations, but not for anything that is based on an input.
If you have an animation that results from a specific input, the host will need to relay that input to other peers manually so that the other peers can play the correct animation (inputs are normally communicated only from the peer to the host). However it would be silly to send every input of every peer to all the other peers all the time, since most of it is unnecessary information. Instead, the host can send the "state" of any particular peer's animation to all peers. This can be done either with a synced (number) instance variable (probably set on the particular peer's instance) or by sending a message (with the relevant peerid and correct animation state contained).