I have had this problem before too. Worst-case scenario if "trigger once" used with "For Each" still fails to work like you intended it to , use a "switch" instance variable.
instance var called "WhateverYouAreChecking", initial value = "No"
Add this condition to your event
WhateverYouAreChecking = "No"
add this action to your event
Set WhateverYouAreChecking = "Yes"
You can use boolean or number instead of text-type
That will act similar to how a "trigger once" used with "for each" should theoretically act.
Yes, you wasted memory by using another variable, but hey, as long as you got what you wanted to work, it's ok. I did the same before (similar problem with trigger once and for each)