Following this guide I have used the Data Transfer modifier to transfer weights from a body mesh to an item of clothing. The transfer was successful but the effectiveness was actually worse than just parenting the clothing with automatic weights. I've seen weight transfer work better than either of these outcomes on other videos on older versions of blender but I can't figure out what the difference is which is causing my problems. (If it works correctly it should require no manual weight painting
I suggested projected face interpolated in the comments, but in your case "nearest face interpolated" works better. The reason is 'projected' projects along faces normals and in your case, some faces normals does not point to the base mesh.
Often, data transfer has to be tuned, and so you need to retry often. That's why I find easier and quicker to use 'data transfer operator' instead of the modifier.