I had the same issue, ie. setting cell.selected = YES in [UICollectionView collectionView:cellForItemAtIndexPath:] then not being able to deselect the cell by tapping on it.
Solution for now: I call both [UICollectionViewCell setSelected:] and [UICollectionView selectItemAtIndexPath:animated:scrollPosition:] in [UICollectionView collectionView:cellForItemAtIndexPath:].