When using an ASP.NET CheckBox (and in out case, inherited from a CheckBox) it renders a span around the checkbox input control, this span control
I've found that by implementing a constructor like the one below, you can specify the container tag for your control.
public MyCustomControl() : base(HtmlTextWriterTag.Div)
{
}
You can replace the HtmlTextWriterTag with any of the aviable options, such as Div in the example above. The default is Span.