You can wrap the assignment operation into a with torch.no_grad() block to make sure Autograd doesn’t record this copy as a differentiable operation:
fc1 = nn.Linear(10, 10)

prior_weight = fc1.weight
prior_bias = fc1.bias
prior_in_features = fc1.in_features
prior_out_features = fc1.out_features

# add "empty" token
fc2 = nn.Linear(prior_in_features, prior_out_features+1)

print(fc1.weight.is_leaf)
print(prior_weight.is_leaf)

# reuse whatever weights and biases we still can
with torch.no_grad():
    fc2.weight[:prior_out_features, :] = prior_weight
    fc2.bias[:prior_out_features] = prior_bias

print(fc2.weight.is_leaf)

out = fc2(torch.randn(1, 10))
print(out.shape)
out.mean().backward()
print(fc2.weight.grad)