The only option in that case that i can think of right now is to change or overwrite the defualt climbing animation to work with your current animation, using Humanoid description or playing around with the animation scripts
This is happening due to the way the Climbing state is registered (iirc done through a raycast) and the fact that the torso of your character is animated in the punch (torso requires collisions enabled due to internal Humanoid logic involving downcasts).
You aren’t going to like what’s coming next: but the thing you’re rejecting is effectively the only way to resolve this problem. That is unless you apply a workaround, hacky or not. The one non-hacky workaround I can think of is a separate animation played during the Climbing state.
I’ve been able to half get around the problem by playing an animation after the attack animation plays that only uses the torso, but quite often it disconnects the user from climbing which is annoying .