Got home, took a look at 99's capx and that is pretty much the technique I mentioned.
Here is a bare bones version, using the tilemap object. https://www.dropbox.com/s/xz4dqd4ov8h0p ... .capx?dl=0
Note that with your 9 tiles (10, if you include a blank one), you cannot properly utilize a bitwise tilemap, as you can see from the example. The minimum number of tiles is 16 - one for each configuration of adjacent spaces. You are missing the ones for when a tile has only one neighbor for each direction (4), and also when the neighbors are across from each other (2). Also, by utilizing half tiles you'll additionally have to account for interior corners (4), and diagonals (2). Those last 6 tiles are all variations of when a tile is bordered by 4 other tiles, so you'll need some more events to specify those as well.