When stored in files the definition field is null.
See also What are the pros and cons of using external xml files for CiviCase configuration?
But if you just want to consolidate all under one type, just turn off the hook extension and run a SQL statement update civicrm_case set case_type_id=1, and then delete all the case types except id 1 and set is_active ...
This is specific to civicase activities and it's because the view form uses its own way of displaying custom fields that's different from regular activities. I posted this quickie patch in the lab ticket but it's not the best long-term solution:
diff --git a/templates/CRM/Case/Form/ActivityView.tpl b/templates/CRM/Case/Form/ActivityView.tpl
Yes, its a known issue and is reported on CiviCRM gitlab. Difficult one to support or fix as the data is filled when the rows for results are altered after fetched from database. May be turn off the sorting for the column using JS?