Following this lecture, I changed the properties of the ScriptableObject Weapon class to distinguish between left hand and right hand grip transforms, having a “gripLeftHandTransform” and a “gripRightHandTransform”, instead of just having a “gripTransform”
As it turned out, everything was going smoothly inside the Unity editor, but both the builds for Mac and Windows started behaving strangely. It was as if the player “Weapon In Use Left” and “Weapon In Use Right” properties had been left blank or set to null.