1/ Of course. Use two tilemaps. 1 for the show. Erase the tile in the base tile map, set the tile in the show tilemap, find path, when path found, set the tile in the base tilemap, erase the tile in the show tilemap.
2/ Yeah, do as above, find path to mouse.X and mouse.Y
But that is not gonna work for tiles that are surrounded with other tiles. Because they are obstacles. I have no idea if you have surrounded tiles. So you need 3 tilemaps.
1 to mark the border tiles, leaving the surrounded tiles errased, use that as obstacle map.
1 to fill the surrounded tiles.
1 as a temporary to move tiles, that are obstacles but that you dont want to be obstacles, to. And back again.
Alternative, once they reach the second last index of the points in the calculated path, just move them to the stored mouseX/mouseY
But that is so way off from what you wanted in the first place.
So, or adjust the tilemap so a path can be found. Or, make the last move a straight move to the mouse.