To be clear, the code for changing instance parameters works at the current level only, so you would need to do something like what Niall is suggesting. The callback-invoking code is called per-cellview also, but you can call it for all cellviews in a library, for example, so you can perform all the parameter updates first and then you could force all the callbacks for everything afterwards.
To expand through the hierarchy, you could control it from the top-level using the names found in the file, and you would need to intelligently handle how to push down more than one level if needed. An alternative approach is to expand everything in the hierarchy (assuming that you need to change something at all levels, for example). In this case you might find code similar to that found in this solution helpful, it contains an example of a recursive function for expanding or traversing all cells in the hierarchy.
Good luck with the coding!