Maintaining both continuity and differentiability on a Bezier patch (or between a set of patches) is basically maintaining differentiability between successive control points. So for example if have a shared corner where four patches meet, then you need to have the gradient from this point to any other point in the same direction (so you have two: x direction and y direction) to have the same slope.
So to be explicit, lets say you have a shared node X and you have four control points directly surrounding this corresponding to the orientation North, South, East and West (N,S,E,W). This means that the gradient of vector (N-X) is the same as (X-S) and also (E-X) = (X-W) to maintain both differentiability and continuity.
You apply this principle to any shared node and you get those requirements.
So when you do all this, you get criteria now for all the nodes since all these nodes must be on a common line, it means that since a line is parameterized by one variable, you find out the minimum number of parameters and this becomes the dimension of this particular system.
Then the only thing left to do is to find out the number of constraints possible for the actual number of direction vectors for the parameterizations, and that's going to depend on the constraints for your edges, but once you do this you can basically choose any valid direction vector for this linear parametrizations between the patches and plug these in to generate all the control points and thus generate a definition for the total patch.