Rigging Mesh With Separate Parts Deforms Incorrectly
Autoweights don't handle separated meshes well.  There are a number of reasons why manual weight painting might not work well or easily for your situation.  (Like occlusion, particularly if there's some ambiguity of that from coincident verts.)
What's the solution?  You don't have to merge your mesh, but what I'd recommend is making a temporary duplicate of your mesh and then merging the vertices in that.  Then you have a mesh that you can use autoweights on properly, that you can paint easily.
When you've got weights you want on your duplicate, then it's time to transfer the weights back onto the original.  Make sure your armature is in the rest position (and that you're not using any other modifiers on your duplicate.)  Use a data transfer modifier on your original, set it to affect vertex data, vertex groups, specify the duplicate as the target, copy by nearest vertex (nearest face interpolated is usually better, but here you may have slight inconsistencies in vertex position at the seams), hit the generate button, then apply the modifier.  After you do that, you can delete your duplicate; the original will have the same weights as the duplicate.