Given the structure of your tables, it appears the solution requires a substantial re-working of the code. For one thing, your 'tables' actually comprise multiple logical tables. For another, the tallies go on the second row, not the last.
Try:
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
Application.ScreenUpdating = False
Dim Tbl As Table, i As Long, j As Long, k As Long, l As Long
If ContentControl.Range.Information(wdWithInTable) = False Then Exit Sub
Set Tbl = ContentControl.Range.Tables(1)
With Tbl
l = 2
For i = 3 To .Rows.Count
If .Rows(i).Cells.Count = 4 Then
With .Cell(i, 4).Range
If .ContentControls.Count = 1 Then
With .ContentControls(1)
If .Type = wdContentControlDropdownList Then
For j = 2 To .DropdownListEntries.Count
If .DropdownListEntries(j).Text = .Range.Text Then
k = k + .DropdownListEntries(j).Value
Exit For
End If
Next
End If
End With
Else
Tbl.Cell(l, 4).Range.Text = "Score" & Chr(11) & k
k = 0: l = i
End If
End With
End If
Next
End With
Application.ScreenUpdating = True
End Sub