Are you using UObjects or Actors? Actors have replication built in.
What information are you trying to replicate? I ask because most of what is in a item can be kept in a dataAsset like anonymous said or a commonly referenced struct. Ammo I can see and maybe what’s in a player’s corpse.
But in the case of a gun or ammo, I would as you said, pass the data into the item as it spawns.