+1  A: 

Hard to tell without looking at all the code, but is it possible that you're not recycling your tableview cells properly? You have to assign a different reuseIdentifier for each cell that's rendered differently. If a header cell is getting reused as a detail cell (or vice-versa) that'll cause some oddities in rendering.

Mark Bessey