Best way around this UV problem?

You need to process the UVs to unwrap them into 2D space. In the image you share the UVs would essentially be projecting any texture to one side of the asset (this would be the overlapping error, the back side of the rails are still behind the front)

For example, to unwrap the pipes, think of them as rolled pieces of paper: starting from a flat paper, you roll it up and are left with a seam running down it. You must define this seam on the mesh so that it can be laid out flat like the paper. After you select the edges that will be your seam you can break the UVs there and then use the flatten tool to lay it out. Each part needs to be approached in a similar way, eg that plate at the ends of the vertical pipes would be laid out in the 6 faces that make it up.

UVs can be really complex, but once you get used to them you can start to plan for them in your meshes to make the process easier.

There are plenty of resources you can search for that give the specifics of the process for whatever program you are using.