For loop when given character Hit Result triggers multiple times

You should consider drawing a debug sphere where you trace it, see how it looks in the scene, and check the collision settings of your components.

Also, it might be that both the actor and mesh components each have an associated FHitResult. You can confirm this by printing the display name of each primitive component for all the hit results.

A dirty way to solve this problem is just have a break statement after you trigger the damage once. This ensures it will only happen once, regardless of whats happening behind the scenes.