Okay here's what I did.. not sure why this is not 100% working for all hits and only some.. will figure out a mini capx to post if I don't get this working and it's not obvious to you what's wrong with it.
1) Create an array to store each unique enemy + damagesenemy pairing
2) On enemy/damagesenemy overlap, check for lastindexof(str(enemy.uid&","&damagesenemy.uid))
3) If it doesn't exist (-1), do damage
4) Then push a new row with the pairing + a timer.
5) Loop every tick to decrease all values in the array
6) Delete records that have timer go below 0.