When I tried to recreate this I didn't need a For Each loop, each instance would enable/disable its behavior based on its individual variable. Most likely some other event is interfering and setting all of the objects variable to the same thing.
In my experiment all I did was have 3 different objects, A, X, Y, where A had drag and drop behavior and X and Y had sine behavior to make them move.
If A collides with X -> Set variable to "no"
If A collides with Y -> Set variable to "yes"
If variable = "no" -> Disabled drag and drop
If variable = "yes" -> Enable drag and drop
This worked as expected with multiple instances of A, so the issue seems to be someplace else.