Parts of my mesh are becoming disconnected and other parts are moving during animation?

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,

  1. separate the shirt into a different object (select verts in edit mode, then ctrl + p).
  2. do the weight painting of the coat
  3. 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.

ahh i see, thanks

what about things like my eyebrows they keep getting ripped off my mesh when i try to pose the head?

The head is influenced by like 10 bones, while it should be influenced only by the head, neck and any other facial bones but not by bones like chest, arm, etc.
With th default vertex weight color scheme it’s easy to not recognize lower values assigned to areas where they shouldn’t be. That’s why I use this color scheme for weight painting. It shows lower values red, so I can spot stray weights easily. It can be changed in Main Header > Edit > Preferences > Editing > Weight Paint > Use Custom Colors.