Totally agree with Scott on this one.
What happens if you delete 250 000 rows from a table with 80 columns???
How do you recreate the whole history of a single row with a select query??? (All the columns of the row at each version of its life).
BTW I didn't read the whole thing but I seems you are having problems identifying the base table name from within the trigger. Maybe you can use this code somehow to extract the basetable name (from sql 2000).
Select Object_name(Parent_obj) as BaseTableName from dbo.SysObjects where id = @@PROCID
Where @@PROCID is the id of the trigger in sysobjects. This variable is available and set within the trigger and any other procedure for that matter.