I inspected the layer one by one after .
It turns out the solution was even simpler than this: I forgot to set the bias,  so I inadventantly  chucked a 1-D bias tensor into the slot for weight (where it of course expected a matrix).
Rewriting the function set_weights as such did the trick:
def set_weights(i, j):
    if i < LEN_MODEL:
        if hasattr(model.linear_relu_stack[i], 'weight'):
            model.linear_relu_stack[i].weight = nn.Parameter(reshaped_params[j])
            j += 1
            model.linear_relu_stack[i].bias = nn.Parameter(reshaped_params[j])
            i += 1
            j += 1
            set_weights(i, j)
        else:
            i += 1
            set_weights(i, j)

I just lost track of things due to sleep deprivation.