An alternative to setting the tab order might be something like this:
1) you fetch the Checkboxes out of the groupBox controls collection and sort them e.g. by name
List<CheckBox> listCheckboxesOrderedByName =
groupBox1.Controls
.Cast<CheckBox>()
.OrderBy(c => c.Name)
.ToList();
foreach (var c in listCheckboxesOrderedByName )
{
}