In my opinion, TwoLeggedMammal’s suggestion seems elegant and efficient, and capable of scaling to some complexity. Conversely, consider that your wish for Tile Instance attributes may solve your issue initially, but it may not be play nicely in the long run.
For the past 2 years I’ve been working on an isometric game as well, and one of the first gotchas during my development was that I couldn’t create attributes on Tile Instances, which I hoped to use to mark certain tiles, for example if a dynamic/run-time item was to appear on top of that Tile Instance, or if I wanted to mark some Tiles so that an adventure narrative dialog box appears when the player stands on top of it.
But I realised that if I didn’t have proper viewport feedback about all the attributes, then I would be running blind during level editing, and might end up with many Tile Instances attributes being set, when they shouldn’t be, resulting in lots more bugs. And even if I did have visual feedback, I would still find myself needing to manage those attributes: for mass-changes, and the ability to group these attributes because when you have lots of it, you need to organise it. When I thought of it this way, I thought that the first thing I should be doing in the first place was to organise my Tiles in layers. And when I did, Tile Instance attributes, while still desirable, didn’t seem so important, because I’m able to control the Tiles as a group using layer attributes.
If you want to associate Tiles to different layers, why are Tile Layers not suitable for what you want to do?