As usual I was overthinking. Above is more generic idea for keeping track of items, and sadly there is no automatic way to keep same ids for same items during whole development, i think it needs human input somewhere.
Anyway here is simple code that will manage your trees without caring which tree is which, this only counts untouched trees.
EVENT_ChangeState sets materials for test cube mesh. EVENT_CountTrees counts untouched trees, and if it’s ZERO, it sets the state to ALL touched. However, this only happens in the last checked tree blueprint. I did not add a dispatcher, etc., to keep it simple. So other trees/blueprints do not receive event to change state.
and enum for tree state:
ps.
To keep track of separate trees, you can read actor name in blueprints, and create map variable that holds name of actor as key, and state as value.

