I'm having trouble visualizing your scenario, can you post some relevant code snippits that show some examples of the update information and classes to change based on the updates?
What about implementing interfaces on the update classes and the classes to be touched by the updates such that a single set of logic can bridge between the disparate classes? Then your arrays of updates can be strongly typed to the interface instead of ambiguously to 'System.Object'.
Thinking back on my suggestion I wonder if the fundamental problem with that solution is that the classes (update information and ones to be touched) are so different that you need to analyze the update type in order to really know what to do? If that is the case, what about expanding the observer to provide more discrete update methods to increase type specificity.