Is it possible to repopulate radio button inputs with values from submission.fieldMetaData using the standard form.render() method?
A little messy but here's how I got it to work in case anyone else has this question. It even seems to respect the conditional display rules on my form.

{% if form|length %}
    {{ form.renderTag }}

    {% if form.hasErrors %}
      &lt;div class="freeform-form-has-errors"&gt;
        {{ "Error! Please review the form and try submitting again."|t('freeform') }}

        {% if form.errors|length %}
          &lt;ul&gt;
            {% for error in form.errors %}
              &lt;li&gt;{{ error }}&lt;/li&gt;
            {% endfor %}
          &lt;/ul&gt;
        {% endif %}
      &lt;/div&gt;
    {% endif %}

    {% for row in form %}
      &lt;div class="freeform-row {{ form.customAttributes.rowClass }}"&gt;
        {% for field in row %}
          {% set columnClass = "freeform-column " ~ form.customAttributes.columnClass %}
          {% if field.type == "submit" %}
            {% set columnClass = columnClass ~ " freeform-column-content-align-" ~ field.position %}
          {% endif %}
          {% if field.type == "radio_group" %}
            &lt;div class="{{ columnClass }}"{{ field.rulesHtmlData }}&gt;
                {{ field.renderLabel() }}
                &lt;div class="freeform-instructions"&gt;
                 {{ field.renderInstructions() }}
                &lt;/div&gt;
                {% if field.errors %}
                &lt;ul class="errors freeform-errors"&gt;
                    {% for error in field.errors %}
                        &lt;li&gt;{{ error }}&lt;/li&gt;
                    {% endfor %}
                &lt;/ul&gt;
                {% endif %}
                {% for option in field.options %}
                    &lt;label&gt;
                        &lt;input type="radio" class="freeform-input" 
                          name="{{ field.handle }}" type="radio" 
                          id="form-input-{{ field.handle }}-{{ loop.index }}" 
                          value="{{ option.value }}" 
                          {{ option.value == submittedValues[field.handle] ? 'checked' : '' }}&gt;
                        {{ option.label }}
                    &lt;/label&gt;
                {% endfor %}
            &lt;/div&gt;
          {% else %}
          &lt;div class="{{ columnClass }}"{{ field.rulesHtmlData }}&gt;
            {{ field.render({
              class: field.type != "submit" ? "freeform-input" : "",
              labelClass: "freeform-label" ~ (field.inputOnly ? " freeform-input-only-label" : "") ~ (field.required ? " freeform-required" : ""),
              errorClass: "freeform-errors",
              instructionsClass: "freeform-instructions",
              overrideValue: field.handle ? submittedValues[field.handle] : ''
            }) }}
          &lt;/div&gt;
          {% endif %}
        {% endfor %}
      &lt;/div&gt;
    {% endfor %}
    &lt;input type="hidden" name="statusId" value="2"&gt;
    &lt;input type="hidden" name="submissionId" value="{{ application.id }}"&gt;
    &lt;input type="hidden" name="userId" value="{{ currentUser.id }}"&gt;
    &lt;input type="hidden" name="userEmail" value="{{ currentUser.email }}"&gt;
    {{ form.renderClosingTag }}
    {% endif %}

{% js %}
    var act = document.getElementsByName('action');
    act[0].value = 'freeform/submissions/save'
{% endjs %}