You don't have to reassign ids in the sprite collection - you can instead create a spriteId remap from sprite collection 1 -> 2 using names or other identifiers. After that you simply run through the tilemap and swap the GetTile(x,y) remap and reassign the remapped value using SetTile.
The problem then becomes how you handle differences, eg. missing sprites, different sprite sizes, different anchors and so on.