Hi,
Welcome to our community! 
Have you already tried to add Debug.Logs to your code to see what is going on during runtime? Log _rigidbody.freezeRotation into your console. Do that in the Start method. In the Update method after setting the value to true, and after setting it to false. Maybe you do not get the initial value.
If that’s the case, declare a new variable at the top of your code:
RigidbodyConstraints constraints;
In the Start method, assign the initial value that you configured in the Inspector:
constraints = _rigidbody.constraints;
Instead of setting the freezeRotation to false, you set the _rigidbody.constraints value to the initial value. I’m leaving this little challenge for you. If you do not know what I mean or want to see if you had the same idea as I, here is the code:
_rigidbody.constraints = constraints;
Alternatively, you could try to remove the lines with freezeRotation to see if that fixes the issue. If it didn’t readd the lines removed but use the following code at the top of the Update method:
_rigidbody.angularVelocity = Vector3.zero;
Did this fix it?
See also:
- Forum User Guides : How to mark a topic as solved