In theory that sounds fine, if one is set to true then it will deplete the life. Construct has a lot to do with picking instances and applying the actions to those instances. You could share screenshot of the events so we can see how you are approaching it. Also in debug view you can select the instances and see if variables are set how you expect.
Farming all of them means that it's not using a condition properly such as 'sprite boolean = true, subtract from sprite variable' and is instead picking all the sprites. You can narrow it down with conditions, just make sure they are in the correct structure.