I assume you are using the "Is overlapping" logic when the player hits an enemy.
Whenever the player hits an enemy, and adds 1 to health, every tick it will add 1 to health if you have not added a condition to the logic. So the player could be hitting the enemy for 10 ticks before it is done hitting the enemy, causing the health value to be higher than intentionally calculating.
You should add "Trigger once while true" in order to stop this from occurring inside your games logic.
Or, you could always use the more simple route:
Player -> On collision -> Enemy -> Subtract 1 from Health
The above only fires once when true.
You could create a text object, and set the text to your current health value (if you had not done so already), it is great for debugging practices.