I'd propose a simplification, where any single room in the ship (building, whatever) always carries one single air pressure only.
This should be close to reality, since if you have a room with air and
- open a door to vacuum, all air will escape instantly
- drill a small hole in the wall, it will escape slowly
In practice, there will in both cases be one single pressure in the room at any time. Air is fast, the bottlenecks (size of hole) will slow down the escaping, but not for example the mass force of air (or it will, but too little to be relevant).
The data model would be a node graph, ie. connected vertices. In the middle of each room there would be one vertex, and at each door (or hole) one. Perhaps at each corner (for example in a corridor) as well. If a door opens into a corridor, the door vertex would apparently connect to two nodes in the corridor. Imagine having these "lines" going through the entire area, potentially also through air channels etc.
Some of the vertices would have a resistance, telling how much air can pass per time unit, and ofc depending on the pressure in connected neighbour nodes. Those that have no resistance would simply be measuring points.
Then do some recursive magic to walk through the entire graph. Remember that even if it models a physical space, it is still only a data set - the graph doesn't know what the space ship looks like, it only has vertices (indeed with positions, that's how you map to physical locations), nodes and weights. The graph need not "look like" the physical room distribution! It doesn't look like anything, it's just a bunch of numbers.
The action would start by any vertex beginning to leak air, so nullify it's pressure. The next vertex (say a door vertex) would not get zeroed completely, as it has a resistance. Calculate how much it can take and remove that much from it's neighbours. Etc, you get the point.
Take "time" into the equation, to make it framerate-independant.
Maybe a few dozen, a few hundred, or less than 1000 vertices would do?