Вот поэтому надо приводить текст ошибки целиком. То, как вы попытались упростить код, ошибки никакой не содержит. Код из вопроса компилируется отлично.
Ошибка C2989 "класс шаблон уже объявлен как не класс шаблон" означает, внезапно, что класс-шаблон уже объявлен где-то как не шаблон. Имя класса в ошибке тоже присутствует: "Машинный::Интерфейсы::ИСистемаОбменаСообщениями"
Итак, вы заводите шаблон ИСистемаОбменаСообщениями. Но где-то еще в этом же модуле трансляции (смотрите всякие включенные хедеры тоже) уже есть ИСистемаОбменаСообщениями - только объявленная как класс.
Ищите по исходникам все места, где ИСистемаОбменаСообщениями встречается и смотрите. Может у вас где-то forward declaration есть неправильное (вроде class ИСистемаОбменаСообщениями;
вместо template <...> class ИСистемаОбменаСообщениями;
). Или класс с таким же названием.
Еще очень помогает читать, что компилятор вам пишет, а не пытаться угадывать, что же не так с классом, на который он ругается. Можно гуглить код ошибки - тогда можно найти кучу примеров и объяснений.