### Godot version

3.5 (991bb6ac7) -> 4.0.beta10 (d0398f62f)

### System information

Windows 11

### Issue description

I have some relatively simple tilesets created in version 3.5 containing textures, collision shapes, and occlusion polygons. These tilesets are almost completely unusable when migrated into Godot 4 without recreating most of the tileset by hand. Specifically:

- Tile size seems to always be set at 16x16 (this might be the root cause of some of the other issues). This might not be easy to convert properly since tile size is a property of the TileMap in Godot 3, but of the TileSet in Godot 4. That being said, the converter could likely guess at the proper tile size based on the tiles present in the map (e.g. given that all my tiles are 32x32, it would be logical to set tile size as 32x32).
- No occlusion layer is created, meaning **all occlusion polygons are lost**.
- Collision polygons are incorrectly offset from the textures: ![image](https://user-images.githubusercontent.com/4420888/210156434-90331901-5e1c-4f16-9839-19a21bbcc5d9.png) (this wouldn't be as big of a deal if there was a way to "drag" entire collision polygons rather than just individual vertices, but it seems like to only way to fix them is to recreate them from scratch).
- Collision polygons aren't rotated properly in auto-generated rotation alt tiles:
![image](https://user-images.githubusercontent.com/4420888/210156473-069cc7c4-3466-4aba-83ff-693dbba31737.png)
- (I imagine these same issues are present for tileset navigation layers, but I haven't tested that)

Probably related to issues #64006 and #67218.

### Steps to reproduce

- Create a basic tileset with occlusion + collision polygons in Godot 3.
- Convert the project to a Godot 4 project.
- Open the project in 4 and pay attention to the Tileset's textures & collision/occlusion polygons.


### Minimal reproduction project

[convert4.zip](https://github.com/godotengine/godot/files/10328029/convert4.zip)

TILE_OFFSET_AXIS_HORIZONTAL,
		TILE_OFFSET_AXIS_VERTICAL,
	};
	struct PackedSceneSource {
		Ref<PackedScene> scene;
		Vector2 offset;
	};
	class TerrainsPattern {
		bool valid = false;
		int terrain = -1;
		int bits[TileSet::CELL_NEIGHBOR_MAX];
		bool is_valid_bit[TileSet::CELL_NEIGHBOR_MAX];
		int not_empty_terrains_count = 0;
	public:
		bool is_valid() const;
		bool is_erase_pattern() const;
		bool operator<(const TerrainsPattern &p_terrains_pattern) const;
		bool operator==(const TerrainsPattern &p_terrains_pattern) const;
		bool operator!=(const TerrainsPattern &p_terrains_pattern) const {
			return !operator==(p_terrains_pattern);
		};
		void set_terrain(int p_terrain);
		int get_terrain() const;
		void set_terrain_peering_bit(TileSet::CellNeighbor p_peering_bit, int p_terrain);
		int get_terrain_peering_bit(TileSet::CellNeighbor p_peering_bit) const;
		void from_array(Array p_terrains);
		Array as_array() const;
		TerrainsPattern(const TileSet *p_tile_set, int p_terrain_set);
		TerrainsPattern() {}