Проблема конкретно с битриксом не связана - это классическая ситуация, когда в разметке страницы присутствуют теги <% %> - тогда котнтрол, который содержит эти теги отрисовывается не стандартным способом, а при помощи делегата, который генерируется при компиляции aspx/ascx - файла. Скорее всего в шаблоне сайта у Вас такие теги присутствуют, поэтому и не удается динамически добавить контрол на страницу.
С другой стороны, если вы рендерите только GridView, зачем вам создавать страницу типа BXPublicPage? Да и зачем вообще создавать страницу, попробуйте просто отрендерить GridView? Или создайте ASCX, в котором нарисуйте верстку таблицы и отрендерите его без всяких страниц.