Can someone tell me what went wrong and how to fix it, please?

The problem only appeared when "Building3" was placed in a difference statement and only affects the section called "Building3.  The part of the code for the building is included below:

#declare BrickTex =  texture {
  pigment {brick Tan, NewTan
     brick_size <10, 5, 5>
  }
  normal {brick 1}
  normal {granite 0.04}
}

#declare Building = difference {
  box{<-50, -50, -50> <50, 50, 50>
    texture {BrickTex}
  }
  box{<-45, -45, -45> <45, 45, 45>}
  box {<0,5,50> <-45, -30, 45>}
  box {<50, -50, 50> <39, 20, 45>}
}
 
#declare Building2 = box{<-50, -50, -50> <-150, 50, 150>
  texture { BrickTex }
}

#declare Building3 = difference {
  box{<50, 50, 50> <100, 50, 0>
    texture {BrickTex}
  }
  box{<50, -45, 45> <95, 45, 5>}
  box {<79, -50, 50> <50, 20, 45>}
}
 
#declare Church = union {
 object {Building}
 object {Building2}
 object {Building3}
}

object {Church}