Maybe this will fix the problem: Select your object in the scene and to the right check add component, then physics, then box collider. This is the best for buildings and things. Just mess around with the different things in the physics tab
and look at the matrix and see if the collider, rigidbody and triggers you have set up will actually trigger a collision.
I had a problem when I was prototyping a game where my player would start off on the ground but after 15-20 seconds he would sort of slip through the ground and fall through it. I placed my player in the air to make sure he would fall on the ground and didn’t start below the ground. He would in fact land on the ground properly. After about 20 seconds he would fall through the ground.
Since it was the early stages of the prototype I only had a few scripts. I went and turn off the scripts and the player would not fall through the ground. With all the scripts disabled I noticed the player would not fall through the ground no matter how long I waited. Then it was a matter of turning them on one by one to figure out which one was causing the error. It turned out to be a script that used transform.rotate on a completely separate object (not the player and didn’t have anything to do with the player). I cannot explain why it caused it to happen. I rewrote the script to do that same thing but a different way and it worked. If you try some trial and error you might be able to find your problem as well.
If your project is large I would recommend starting a new one and import your ground mesh and player mesh. Add the same kind of colliders and such that you have now and see if it works in a brand new project. If not play around with types of collider and triggers until it works and then apply that to your current game.