Markup being stripped from form element title
In Drupal, strings need to be passed through the t() function for translation. This function uses string replacement to sanitize text. When passing links, the HTML should be put in the string, and the URL passed as a variable prefixed with a colon:

$tc_link_label = t('You agree to the &lt;a href=":url"&gt;terms and conditions&lt;/a&gt;', [':url' =&gt; Url::fromRoute('&lt;front&gt;')-&gt;toString()]);
$form['field_terms_and_conditions']['#title'] = $tc_link_label;