My problem is similar to this question. The following markup ends up with the 'Cannot read property 'childNodes...' error unless I remove the component inside the aura:iteration and replace it with something inline. Unfortunately, I can't do that because I need the sub component to call a function when an item in the list is selected. The c:productListItem component can be very simple and the error still occurs; I reduced it down to some static text inside a span.
<aura:iteration items="{!v.objectsFound}" var="item">
<!-- when I use the following line and comment out the c:ProductListItem, the error goes away -->
<!-- span>{!item.Name}</span -->
<c:ProductListItem product="{!item}"/>
</aura:iteration>