Проблема в макросе AFX_EXT_CLASS.
#ifdef _AFXEXT
#define AFX_EXT_CLASS __declspec(dllexport)
#else
#define AFX_EXT_CLASS __declspec(dllimport)
#endif
Расширение dll определяет _AFXEXT, и ваш класс экспортируется, а основное приложение (или обычная dll) не определяет его, поэтому оно импортируется. Но ваше второе расширение dll также определяет _AFXEXT, и ваше объявление класса использует dllimport вместо dllexport, и вы получаете ошибку компоновщика. Решение состоит в том, чтобы создать свой собственный макрос для обеих библиотек и использовать их вместо AFX_EXT_CLASS:
#ifdef EXTENSION_ONE
#define EXT_CLASS_ONE __declspec(dllexport)
#else
#define EXT_CLASS_ONE __declspec(dllimport)
#endif
Создайте EXTENSION_TWO и EXT_CLASS_TWO для вашего второго dll. Определите EXTENSION_ONE только в вашем первом проекте расширения dll, а EXTENSION_TWO только в вашем втором проекте расширения dll.