From what you’re describing I think you want to look into Event Dispatchers. You define an ED inside a blueprint, from which you can call it. Any other blueprint can bind events to this ED through a reference to the actor with the ED. From then on, whenever the ED is called, all bound events will also be called. These events can have inputs like any event, meaning you can pass data to multiple actors in this way.
If you look into the OnActorEnterTileSimulate (and an equivelent Exit event) you can see how I have set this up (and that also goes towards answering your second question.
Data in tiles is stored within TMap variables. Most of these are in BP_GridManager. You have GridLocations, where you can find the location of a tile by inputting the grid index, for instance. The cover TMap follows the same principle, but it resides with in the cover system component. You can get the cover data of a tile through a grid index.