Why does position differ? The object may get created at a position that's somewhere in the "past", but the avatar of the player that created it should also be in the past, so the two would line up. You need to make sure that the player that's firing the weapon is the one that's spawning the objects -- the same player that should be sending out sync updates for its own position.
It's also often a good idea to sync the begin and end actions instead of creating each projectile individually if you have a rapid-firing gun. For example, player presses the "fire" button and the gun starts firing -- you know where it's firing because you know where the gun is facing (and you should probably send the updated pos/rot when you send the 'fire' message). Keep firing until the button gets released. At that point send out the "stopped firing" message. If there is a hit on another player, send that as well.
This way all you need to send periodically is the pos/rot updates rather than individual create object calls, and the object creation can be done only locally.