The usual workflow would be to do a 3d track of the cieling (Hopefully someone had the foresight to stick tracking markers here and there) to extract the camera movement. Then build the cieling in 3d and render it in passes using the camera movement from your tracker. Use shake to comp all the elements together. The software might be expensive but its high end work you are trying to do.
The cheaper (financially) alternative is to create a clean ceiling and bring it into shake. Put it together with the multiplane node. There is a 3d camera tracking plugin for shake made by pixelfarm which you might be able to use to get the camera movement. I tried to intall the demo once but the installer didnt work and the tech support people from pixelfarm didnt bother to respond to my emails. Therefore I cannot tell you if it is any good. If you cant use this, you will have to find another way to extract a camera track and import it as an .ma file. The problem is with this method that you will need to fight with the multiplane node, it isnt very usable. It might take a while to get it right.
The cheapest option is to divide and conquer. Track little bits at a time and build up the whole thing patch by patch. This is fairly likely to end up looking like a mess but you can try.