Hi! This is a known bug on Unity's side that they still haven't fixed.
When Unity tries to dynamically batch a multi-material MeshRenderer, it breaks draw order in favor of batching.
The current options for remedy are:
a) Add a Sorting Group component to each instance of the affected Spine GameObject. This disables batching, but you were already breaking batching with multiple materials anyway. Using a Sorting Group component has also become standard even for Unity's own 2D sprite system. or...
b) If you want to maximize batching, try your best to make the atlas fit into one Texture.
You would do this for any multi-Material 2D MeshRenderer with multiple instances. Not just one generated by Spine.