question about deform/transforming clothing meshes to fit over each other

I have built and rigged my player character using blender and am about to start making clothing preferably also with blender but I may use something else if anyone has a suggestion for free/cheap software to make clothing. I would like to have the player able to equip different items of clothing and armour that can be worn in layers and will fit interchangeably with each other.

As an example the character may have a leather jerkin equipped which aside from a little rigidity will be fairly snug and form fitting to the character but if you then equip a gambeson the jerkin will need to scale out to fit over the top of it as a gambeson is a much thicker item, otherwise the jerkin will be inside the mesh for the gambeson and cause clipping issues.

How can I make the meshes deform automatically to fit on top of each other like this? Or will I have to make multiple copies of each clothing mesh already scaled to fit for each item that could be under it?

In a similar vein if it is possible to have meshes scale/deform themselves base on what is underneath can it be done with small portions of the clothing? For example and shirt will fit tight against the character mesh but putting on the same tight shirt over a bullet proof vest is only going to need to reshape over where the vest is.

Any help appreciated.