Hi,
I know about this issue.
A quick way to see it :
- Create a game object with a tilemap component
- Set the sprite collection, the tile data and the editor data
- Save the game object as a prefab
- In paint mode, draw something and commit (do not apply on prefab !!!)
- Launch the scene : the tilemap draws nice
- End the scene : the tilemap is already in paint mode Oo
- Commit : BOOM ! All modifications lost.
It's not the only case things start getting messed up :
- Create a game object with a tilemap component
- Set the sprite collection, the tile data and the editor data
- Save the game object as a prefab
- Erase the render data gameobject associated to your tilemap
- Launch the scene : the render data is regenerated
- Launch the scene once more : a new render data is regenerated
- Launch the scene once more : a new render data is regenerated
- Launch the scene once more : a new render data is regenerated
...
It seems that any modification on the gameobject overriding a prefab's property (the bold-text values on other gameobjects) are lost when playing your scene. The link between prefab and render data is always set back to "null". Any modification on tilemap not applied to its parent prefab is lost. Sometime, layer gameobjects, chunk gameobjects or collider components start duplicating for the same reasons.
For now, I managed to work around this problem but it get sometime really annoying. As prefab system is a core feature of Unity, this problem sounds like a serious issue.