Actualizar el diseño programáticamente en magento event observador

Estoy tratando de cambiar la plantilla (view.phtml) de un bloque (product.info) para la página de detalles del producto, para hacer esto, estoy observando un evento (controller_action_layout_generate_blocks_before), en ella, después de realizar las comprobaciones necesarias, estoy intentando cambiar la plantilla del bloque (product.info) de la siguiente manera:

$layout = $observer->getEvent()->getLayout();
$layout->getUpdate()->addUpdate('
        <reference name="product.info">
            <action method="setTemplate">
                <template>customlayout/product/view.phtml</template>
            </action>                                                          
        </reference>');
$layout->getUpdate()->load();
$layout->generateXml();

Si pongo"<remove name='product.info'/>" , se eliminará, pero cuando se intenta hacer lo anterior, no funciona.
Editar:
El requisito es cambiar la plantilla (detalle del producto) dinámicamente a la seleccionada (en CustomModule) con respecto al producto actual.

Respuestas a la pregunta(5)

Su respuesta a la pregunta