Not much progress to share yet, but the above has grown into a full game idea called "Resonant Tale". Here's a demo of bombs and arrows on the A and B button respectively - the sword is now used automatically when moving into things that can be attacked:

Neither bombs or arrows are being swapped into the game as tiles. Instead they are player tiles being drawn in, which lets them make use of transparency and means I don't have to worry about remembering what tiles they are replacing. I have some logic in the game loop for how they both behave. Arrows move one tile every other frame - I found that to be the nicest integer speed.