Can you post the whole script? The issue is probably somewhere else in it, or you’ve got another instance of the script in your scene you’re not aware of.
Are you sure your Debug.Log messages for “true” and “0” are for the same instance of this script? You can add gameObject.name to your two debug statements to verify they are from the same GameObject.
But how do you know the velocitySwitchMultiplier value of 0 in the console isn’t coming from the script instance reporting false, when you know the only way it could be 0 is if it previously reported false?
If you were an idiot, you wouldn’t have ever got it. Smart people make mistakes too, and sometimes have trouble seeing them because they think stupid decisions are beneath them.