The BocListControlObjectBase Objects gets the Columns from the page only when created. If the number of columns change on the page after creation of the ControlObject, accessing columns can fail because the ControlObject tries to access outdated columns.
This goes against our usual Pattern with ControlObjects, where the state is usually taken from the site instead of being locked down when the ControlObject is created. However, it can easily be workarounded in the Webtest by creating a new ControlObject after the number of columns changes.
It is possible that there are other ControlObjects left over with similar behaviour.