I made this a while ago:
I'm unsure if it would be helpful, it comes across as fairly complicated.
Basically what you could do first is place all your tiles down as sprites. Next put the tile sprite in a family and give them a boolean variable called "selected". The reason for a family is so two separate instances can be referenced.
You then can expand the selection one unit in all directions with:
Family1: boolean "selected" is true
Sprite: is overlapping family1
--- sprite: set selected to true
Throw a repeat above that if you want it done multiple times:
repeat 2 times
Family1: boolean "selected" is true
Sprite: is overlapping family1
--- sprite: set selected to true
The only issue now is diagonal tiles are also selected. To fix that make the tile's collision polygon with beveled corners or more octagon shaped.