It's usually a good idea to have your renderer just use one material.
This might be a similar problem: Z Fighting bug on Unity 5.5 (Incorrectly labeled "z fighting", which it isn't.)
To summarize:
This seems to be a bug in Unity 5.5's orthographic camera/orthographic sort and dynamic batching.
[...]
In the case of multiple meshes overlapping each other: crossed skeletons will always occur if your MeshRenderer uses more than one material since each material change causes a different submesh to be generated (and can therefore be batched). Set the sorting layer and sorting order properties on each renderer to make sure that doesn't happen.
Having a z-spacing of -0.0001 seems to be enough to correct it.
However, just setting the sorting layers/sorting order without adding z-spacing will also fix the problem.
[...]
Sorting order can be found in the SkeletonAnimation's inspector, but the actual property is an inspector-hidden but serialized property on MeshRenderer (and all UnityEngine.Renderer-s)
Accessing it through code looks like this:
int mySortingOrder = 1; // any int. Between renderers, they just need to be different. Larger numbers go on top. Smaller numbers go under.
GetComponent<MeshRenderer>().sortingOrder = mySortingOrder;