Generated destruction meshes not affected by gravity

Ok, so this is a little complex. I have a system where I generate a sky-scraper type building by placing a destruction mesh a certain number of times above itself. This is done with a loop that adds the mesh a random amount of times as seen here:

here I am generating the number of floors and each time I add one I reduce the number of floors left to create (simple stuff). Now, every time this runs I get a different sized building. The building looks ok and is destructable. The problem is when I destroy a lower section pretty much all sections above it hover in the air (a few exceptions when I force them to collide but that doesn’t matter) I have tried everything. I have applied physics at pretty much every oppurtunity, I have enabled gravity, I have forced the pieces to intersect so when one of them updates it forces the one above to fall. I have a feeling it may has something to do with them being awake but because of the way it is set up I can’t set them to always awake. One thing I tried for a while was to set it so when a lower piece fractures it forces damage on the above pieces but the fracture was never triggered. I am out of ideas and so is the internet apparently. Any help?

More screens:

The code for applying physics, collisions and gravity

The generated building (floating to show that gravity doesn’t act on it)

The pieces of destroyed building showing that when it is fractured they are affected but before that they just float