First, keep in mind that a trigger always fire in the context of a transaction defined by the statement that fired the trigger, even if there is a user-defined transaction.
The part
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.'.
Suggests that sp_cdc_enable_table has trapped an error with TRY-CATCH, but then tried to continue, despite that the transaction was doomed. Which it always will be when you are in a trigger. (And doomed means exactly what the error message says: you must rollback the transaction.) Possibly you could use Profiler with the event Error:Exception enabled to see what error that may be occurring prior to this error.
I note an error in the trigger:
SELECT @tablename = @EventData.value('(/EVENT_INSTANCE/ObjectName)[1]', 'NVARCHAR(255)')
--get schema for table don't assume dbo
SELECT @schemaname = TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @tablename
But you have the name MyTable in two schemas, which schema will you get?
Instead use:
SELECT @tablename = @EventData.value('(/EVENT_INSTANCE/ObjectName)[1]', 'NVARCHAR(255)'),
@schemaname = @EventData.value('(/EVENT_INSTANCE/SchematName)[1]', 'NVARCHAR(255)')
By the way, what does SELECT @@version
report?