Why is the roof (only) transparent?

The roof is not transparent. You are seeing bleed through of lines from geometry underneath. This is a result of the way OpenGL renders, as you zoom out things that are very close together in space both the surface and the edge start to show. Since you roof is a single surface (without thickness), the top edges of the beams underneath are seen at a certain zoom out and angle. You can:

Raise the roof (woot!) move the roof panels up in space a few cm to avoid the bleed.

Give the roof thickness. Push pull but with your contoured roof thats tricky.

Open the beam elements below for editing and hide the upper edges, (right click and hide while selected, or eraser tool with modifier key pressed)
ezgif.com-optimize (1)