The problem is that you are counting controls to determine which column to fill. The macro has no way of knowing that you have removed a control so it works on the basis that the new count is correct. You need to address the controls by name and fill the column related to that control name e.g.
Code:
For Each CCtrl In .ContentControls
Select Case CCtrl.Title
Case "Title1": WkSht.Cells(i, 1) = CCtrl.Range.Text
Case "Title2": WkSht.Cells(i, 2) = CCtrl.Range.Text
'etc
End Select
Next oCC
This will mean that you will have to add names to the CCs before they are filled by your users.