Preserving UV coordinates after Boolean Union operation


I’m having trouble with a boolean operation preserving texture coordinates. Here’s a simple example.
I have 2 lowpoly objects UV mapped and they’re using the same texture:

Left shirt:

Right shirt:

When I do boolean union operation with booltool (or with regular boolean modifier, same results), the resulting mesh has proper texture coordinates and all is fine.

However, when using these 2 models, I get one of the UVs warped after using booltool or boolean modifier. Which one gets warped, depends on the order of selection.

2 different pants objects and the result after boolean union:

I’m going to have a lot of textured lowpoly objects that are all going to be joined together into a 1 solid mesh forming a huge miniature model of a shop that’s going to be 3D printed. Therefore I’m going to build the whole scene up in a way that everything is connected and final result is 1 uniform shell. Of course I could go back and redo the UV’s for the bad parts, but that would require a lot of time doing something that I’ve essentially done already.

Example .blend

Any thoughts?

Any thoughts?
My initial though is “how useful would it be for someone to maybe help you if you supplied a blend file and texture to look at”

My apologies, here is the example file