I assume you don't know C++, because then you probably would have said "I want classes".
Essentially, what you're describing is an object oriented architecture with inheritance and overriding methods. If you're using LV 8.2 or above, you have this built in. If you're using an earlier version and you still want inheritance, I think you would either need to buy one of the Endevo GOOP toolkits or get Sciware GOOP. If you want, there are several other free GOOP implementations around.
Basically, what you would do is create a method for each class called "Show Config Screen.vi" or something similar and you would then call that method on your object. The VI itself can open a new window or work with a subpanel. The key is that the correct VI will be called automatically based on the type of the wire.
You should note, however, that you might not need inheritance. One way to do this (although not a nice one) is to embed the type and data in a variant and pass that variant around. For example, you could have a cluster which would hold a typedef enum which represents the type and a variant which holds the data (e.g. your object reference). When you need the actual data, you get the value of the enum and feed it into a case structure and do the class specific code inside the case. The main problem is that you have to add code to the case whenever you have a new type.
___________________
Try to take over the world!