The prefabs only allow you to _load_ a model during a game. Once the model is loaded in an instance, it cannot be changed.
It sounds like you are tying to allow a model to use different weapons and change them during runtime? For that we usually create a 3d model with all weapons attached to the model and then use enable/disable nodes to determine which weapon will be visible when the model is rendered.