Thanks for looking into this issue, Tejas.

The re-location of the label element does fix the check/uncheck issue. However, it destroy an accessibility feature. That is, when keyboard tabbing on to a checkbox, screen readers would announce the content that has a label element whose "for" attribute has the value of the checkbox id. With the relocation of the label element, the focus on checkboxes would no longer announce the context that this checkbox is for.

To fix the issue and in the meantime keep the form accessible, you may consider using aria attributes.

A article that may help: http://usability.com.au/2013/04/accessible-forms-1-labels-and-identification/