An alternative could be to register a delegate that is able to change the underlying instance provided by the container. Consider the following code:
var theInstance = new MyType();
var builder = new ContainerBuilder();
builder.Register(context => theInstance);
builder.Register<Action<MyType>>(context => newInstance => theInstance = newInstance);
var container = builder.Build();
You can now resolve the action to get a delegate that can change the registration:
var updateInstance = c.Resolve<Action<MyType>>();
updateInstance(new MyType());
Note: if you could elaborate on when and why you need to change the instance, perhaps we could even find a better solution.