Здесь действительно очень мало того, что может пойти не так. Если вы настроили тестовое приложение, чтобы проверить это, оно функционирует так, как вы ожидаете, и вызываются обработчики событий.
Наиболее вероятная причина поведения, о котором вы сообщаете, - это если элементы добавляются до назначения обработчиков событий. Обычно это происходит, если элементы добавляются во время разработки в файл .dfm. Вы говорите, что добавляете элементы во время выполнения. Возможно, вы добавляете их слишком рано, до назначения обработчиков событий. Что произойдет, если вы добавите элементы в ответ на событие, например, нажатие кнопки. Попробуйте, потому что тогда вы можете быть уверены, что обработчики событий будут назначены этой точкой.
Если это не поможет, то, очевидно, в вашем приложении есть какой-то код, который взаимодействует с кодом VCL.