I had the same problem with hitting multiple enemies, except I got some different bugs, but I think this solution should help.
What I did was make it so that when you hit an enemy, for each enemy, a variable "hit" changes to 1 and then a function "damaged" is called.
On the function "damaged" you would select the enemy that has "hit" equal to 1 and then spawn your damage numbers and whatever other effects that you need to apply.
When you finish spawning the numbers, you set "hit" to zero and then you're good to go.
So basically, as your weapon hits each enemy, even if it hits multiple ones, it should go through each enemy, one by one, and then spawn the number and then move on to the next without duplicating the numbers.
Hope this helps