Facet API : How to change some behaviors like having input radio instead of checkbox
What you're doing to change the markup should just work, here's a working example I have from a project that does just that:

function foo_facet_items_alter(&amp;$build, &amp;$settings) {
  if ($settings-&gt;facet === 'my_facet') {
    foreach($build as $key =&gt; $item) {
      $build[$key]["#markup"] = drupal_ucfirst($item["#markup"]);
    }
  }
}


I can confirm that it works as expected.

As far as switching the select for a radio, the error you get is pretty common and you're probably not removing/adding extra Form API options that aren't allowed for one of the types.

Radio buttons behave a bit different than selects, you might not be able to just switch the #type and have it work, if this is still relevant, please post the code you're using to alter that form... thanks!