Код, который использует CArray, ожидает, что ваш TYPE будет неконстантным, поэтому он может быть преобразован в void * (как отмечено в сообщении об ошибке компиляции).
Вы можете хранить константные CString-указатели, которые при разыменовании дают вам константную CS-строку. У вас есть бремя выделения / очистки этой памяти сейчас. Альтернатива состоит в том, чтобы обернуть CString в простой класс, который имеет функцию «GetString», которая возвращает константную ссылку на свой внутренний экземпляр CString.