Cuando tecnicamente decides usar el Page.LoadControl( path ) para cargar dinamicamente en tiempo de ejecucion los UserControls definidos en tu web application, tienes que tener en mente ciertas caracteristicas que por cuestiones de diseño de ASP.NET son aplicables en este contexto.
Sucede que el evento OnInit del UserControl que se desea cargar dinamicamente no trabaja de la misma forma en la que se manifiesta cuando es cargado en tiempo de diseño.
En se caso, solo te queda realizar una llamada a un metodo que tu definiras en aquel UserControl donde estableceras explicitamente los EventHandlers de los Controles que alli este definidos.
Por ejemplo, si tuvieras un DataList, naturalmente es muy probable que necesites enlazarte al ItemDataBound de este DataList.
Algo que normalmente tendrias que definir en el OnInit del UserControl que contiene a este DataList.
Pero si este UserControl va a ser cargado dinamicamente en tiempo de ejecucion entonces te daras cuenta que algo no esta funcionando bien si lo haces de esa manera.
Por lo que corresponde realizar el enlace al ItemDataBound del DataList en el mismo metodo que es llamado por la pagina que contiene al UserControl para que en dicho metodo se realize dicho enlace.
Y ver que todo vuelve a la normalidad.