Я здесь недавно и поэтому могу сказать или глупость или очевидную вещь.
Почему бы не сделать так же как и в уже упомянутом Спектруме - использовать таблицу переходов. Саму таблицу расположить в верхней памяти и стандартную для всех, а вот адреса переходов - у каждого свои. Раз ДОС распространять в виде исходников, то логично, что в нем же будет и загрузчик, который и заполнит таблицу переходов. С такой таблицей решается вопрос и с уже существующими версиями ДОСа - для них нужен всего лишь загрузчик, который заполнит таблицу переходов. Проблема только в существующем софте, который нужно переделать для обращения к функциям ДОСа через точки перехода.