Can't change a weapon's without changing the datablock, which would affect everyone with the weapon rather than a single instance. Not very doable.
1. Start server with 64 dummy datablocks.
2. As clients join, assign a datablock to their gun.
3. Set the datablocks values to their upgrade values that were saved
4. As clients leave, recycle the datablocks for the new clients that join.
5. ???
6. Profit
This works and I had done this with a similar racing gamemode a long time ago.