Interpolating the UVs from the original mesh to a subsurface smooth version is generally a tough problem. It's especially difficult to get a good result when the quads aren't all roughly equal-sized squares, as is the case here where you have a lot of very tiny, thin rectangles from the subdivided bevels. And it's also quite difficult to get good results when there are two layers of UV interpolation going on: the Bevel modifier needs to interpolate UVs along the bevel because the beveled edges have less area than the pre-beveled corner; and then the subsurface modifier needs to re-interpolate the UVs as well since the area and shape of the faces has changed.
You can get a much better result by changing your bevel to Segments=2 and Profile -> Shape=1.0. This will effectively add support edge loops to the faces without actually rounding the edge. This avoids one layer of UV interpolation (because Shape=1.0) and reduces the number of teeny tiny faces (because Segments=2 instead of 3). You can also switch the Subdivision -> Advanced -> UV Smooth to "All" which may be an improvement over the "Keep Boundaries" default.
Here's the before and after for these changes for a similar model to yours. (Note I did a bad Smart UV unwrapping job here, so ignore the seam along the curve of the pipe.)

Still not perfect, but I think it's a huge improvement, especially for those areas not close to the bevel. You have less control over the bevel shape this way, but you can at least fiddle with the "Offset" and maybe some "Shape" values close to but not exactly 1.0 to see if you can get a good final result.
If that's not good enough, you can use a Data Transfer modifier to interpolate the UVs of the final Bevel+SS geometry from the original geometry. To do this, you'll need to make a copy of the geometry (a linked Alt-D duplicate is good enough). Remove all the modifiers from this copy, make sure it has a very nice UV unwrapping with explicit seams along the edges, and then add a data transfer modifier to the subdivided version from this copy. "Projected Face Interpolated" is a good Mapping choice. If you get some faces that appear to have really compressed texture, it may be that the corners of the face are interpolating UVs from faces from different mesh islands. Adjusting the "Islands Precision" setting or trying to remove the offending seam and re-UVing may help. Note that it is the UV mapping of the linked, modifier-free copy that will matter now, so you should do any UV unwrapping on that. The UVMap mapping on the SS version is completely overwritten by the Data Transfer modifier and will have no effect.

Here are my results applied to the original Segments=3, Shape=0.5 bevel, and it already looks very good.

If you go this route, it's a good idea to parent the modifier-free copy to the SS version, so it follows along when the latter is moved, and make sure you disable the copy in renders.
I've attached a Blend file with an example Data Transfer setup.
