Ok, so you indeed need a function that checks neighboring cells, but you also need another one that will find you a random spot for a particular enemy type. First, the checking function.
Then, it might be a good idea to keep a list of each location of type of tiles. Best place to do it would be when you create your "cleaned copy". Now HOW to do it is another question. I would use multiple instances of a two-dimensional array. First, create the arrays.
Each array has a size of (0,2,1) and it will expand as we fill them.
Then add this when you create your cleaned copy, just under the line 13 in your events screenshot, as a sub-event of line 11. You might also want to set cave.CurValue to 1 in line 13 too, and not just in your cleaned copy.
Afterwards, when you want to spawn your enemies, all you have to do to pick a location, is get a random position in the correct CellTypePos array, and pop it, so it doesn't get picked again.