You have two layers of clothing. If you paint them both manually you can’t expect anything good because the values never will match. So,
- separate the shirt into a different object (select verts in edit mode, then ctrl + p).
- do the weight painting of the coat
- transfer the weights from the coat to the shirt
3.a select the shirt (selected object)
3.b select the coat (active object)
4.b space > Transfer Mesh Data > Vertex Groups
That’s the only way to do it, a human simply can’t map the exact same values to both objects, an algorithm has to do it.