This seems like a insanly computing-time/storage costly project.
I would not use a real grid at all. Just position-vectors to where each object in the world is. Then let every object in your world contain a sub-grid. So a cell (an object) allocates exactly as many gridscells it needs to represent itself in 3d. It also contains a position-vector describing its position in the world. Maybe also a vector describing the radius of a bounding-sphere that completly suurounds the object.(for speeding up distance calculations between objects) Then place all these objects within an oct-tree. (So you only do distance-calculations between objects that are actually close to eachother.) Every "frame" check whichs objects are close enough to eachother to interact. If that is the case, you can apply the same logic you would have had in a true 3d-grid.
Im maybe way off here... didn't read all mails, just the first few and last