Populating and saving checkboxlist items to the database
I think it's reasonable to look at whether a single column design is possible - it certainly makes life easier:

For Each DataRow dr in CodeDataTable.Rows
    Dim li as ListItem = Me.cblCodes.Items.FindByText(CType(dr["Text"], String))
    li.Selected = True
Next


You could alternatively do a two column design, with a Text varchar and a Value bit:

For Each DataRow dr in CodeDataTable.Rows
    Dim li as ListItem = Me.cblCodes.Items.FindByText(CType(dr["Text"], String))
    li.Selected = CType(dr["Value"], Boolean)
Next


But even the wide table could be done with less repetitive code by using DataTable.Columns to get the names of the columns:

Dim codeData as DataRow = CodeDataTable.Rows(0)
For Each DataColumn dc in CodeDataTable.Columns
    Dim li as ListItem = Me.cblCodes.Items.FindByText(dc.Name)
    If Not codeData.IsNull(dc) AndAlso CType(codeData[dc], Boolean) Then
        li.Selected = True
    End If
Next