Yea, that trigger is no good: It will work very inconsistently. You just need 3 units to see the issue: Units A, B and C. The "Pick every unit..." action processes those units in the order A, then B and finally C.
Case 1: A and B have Faerie Fire buff and C does not
Trigger is processing unit A, find out that A has the Buff and FaerieFireInteger is 0, so it adds "Spell Damage Increase (15%)" to unit A and sets FaerieFireInteger to 1. Next it processes unit B. Trigger detects that unit B also has the buff, but FaerieFireInteger is 1, so it skips this unit. Finally it processes unit C, detects it does not have the buff so it resets FaerieFireInteger to 0.
Case 2: A and C have Faerie Fire buff and B does not
Processing of unit A is same as in previous case, but this time trigger detects that unit B does not have the buff so it resets FaerieFireInteger to 0. When unit C is being processed, trigger detects it has the buff and FaerieFireInteger is now 0 (thanks to unit B), so trigger adds "Spell Damage Increase (15%)" to unit C and sets FaerieFireInteger to 1.
So depending on the order of units being processed, cases #1 and #2 provided different results. In case #1 only one unit got the spell damage ability, but it should be two units that got it. In case #2 two units got it (as they should) but the second unit got it only because there was a unit without the buff processed between the two units with the buff.
Some less relevant issues:
- You are leaking unit group every run of that trigger. Considering this trigger seems like it will run for the entirety of the map (and if you have more similar trigger that also leak), it can ramp up a lot of leaked memory in later stages of the game, which will result in lowered FPS
- Picking every unit in the entire map for this? Again, if you have more such triggers where you pick all units in map, it can lower FPS (especially if there are a ton of units in game).
As for how to fix it, the simplest way is to have a trigger with "Unit takes damage" event (or use DDS). In that trigger check if targeted unit has buff and attack type is spell and if so, just increase damage done by 15%. Something like this could work (though it requires to be on newer versions)
-
Takes damage
-

Events
-


Unit - A unit About to take damage
-

Conditions
-


(Damage From Normal Attack) Equal to False
-


((Damage Target) has buff Faerie Fire) Equal to True
-

Actions
-


Event Response - Set Damage of Unit Damaged Event to ((Damage taken) x 1.15)
DDS should also be able to achieve the same thing, although the trigger will look a bit different.
If you want to avoid DDS/above trigger, then you can solve your issue using two triggers:
- Have a unit group variable specifically for this spell, e.g. FaerieFireGroup
- Have a trigger with "Unit starts the effect of a an ability" event to detect when unit starts casting your spell. In that trigger add to target the "Spell Damage Increase (15%)" ability and add the target to FaerieFireGroup
- Have a second trigger that periodically iterates over all units in the FaerieFireGroup. Check if each picked unit still has the FaerieFire buff. If unit does not have the buff or it is dead, just remove from it the spell damage ability and remove it from the unit group.