How do I UV map different roof sections so the roofing material is oriented correctly?

One suggestion: Orientate the UV’s in the Modelling Programme.

Another, create a Material for one orientation Texture, either create another for a rotated texture.

Or an instance of the Master materials, where you can put the reorientated texture, but still maintain symmetry, colour, contrast from a central point. You could also include a parameter that allows to adjust the orientation/rotation of the same texture, per instance.

The first suggestion is the cheapest in both rendering and disk size footprint. It also only uses a single render call for a single texture.

You could call the Instances 90, 45, 180, 270 etc for instance, should you choose that route.