There are several ways of doing what you are looking to do. Below are a few things you can look into and see if they will work for what you are wanting to do.
1) Use regular expressions - Depending on what properties are different, you can modify the expected values using regular expressions so that RFT will accept multiple inputs for that property. For example, say you have a button and in one UI it says "Click" and in another it says "Click Me!". You could change the corresponding expected value in the object map to a regular expression that matches both values. This will generally work well in situations where the differences between objects is small.
2) Use the dynamic find - If your problem lies in the property types themselves, i.e. having scripts for both java and web UIs, or the differences in your objects are too complex, i.e. testing against different languages, you can use the dynamic find method to get your objects. This route can be very easy to maintain, but requires a good amount of set up time get the properties you want to use and code them into your script or into a separate file that your script reads from. Using this method you could have your script call a factory class to perform the appropriate action depending on what UI you are testing.
3) Use the RFT script helper templates - You can also modify your script helper templates to make the object methods create by RFT public instead of protected. By doing this you can set up your project so that you have "map" scripts which contain the objects you need, and then controller classes that get an object from a map based on the UI you are testing.