Tu dato se duplica porque se agrega adelante... lo que debes hacer es comparar cada uno para saber cual debe ser selected algo como:
Código PHP:
<select name="D1" onchange="cambiar(this.form)">
<option <? if($_POST['D1'] == "Andalucía"){ ?> selected <? }?>>Andalucía</option>
<option <? if($_POST['D1'] == "Aragón"){ ?> selected <? }?>>Aragón</option>
<option <? if($_POST['D1'] == "Asturias"){ ?> selected <? }?>>Asturias</option>
</select>
Y en los radio cambialo por esto (donde corresponda si y no):
Código PHP:
<input type="radio" name="GrupoOpciones1" value="si" <? if($_POST['GrupoOpciones1'] == "si") { ?> checked <? } ?> />
Suerte!