Interesting! Ok, so I would suggest getting rid of the right hand constraint and not ever parenting it to the left hand. Theoretically it would work, but it looks like Blender has a problem with loops in parents even when one is off. Try always having the left hand parented to the right, and just switching which hand the gun is parented to during the reload.
Hope that helps!