IMO you're making this too hard. As you try to harder to make the trigger generic, you'll be adding in so many layers that you'll impact performance. Remember that the trigger is run for every transaction update to the table whether rows are actually updated or not.
Why not write a utility that creates the trigger for you based on information stored in the database catalog?
-Mike