Intanto vedo che nella prima pagina hai, ad esempio, questo campo:

codice:
<input name="AmericanExpress" type="checkbox" id="AmericanExpress" value="<%=si%>">
che come value ha una variabile che si chiama si

mentre nella pagina successiva lo scrivi direttamente come testo

codice:
 
<input name="AmericanExpress" type="checkbox" id="AmericanExpress" value="si">
e questa cosa non mi è tanto chiara, non capisco se hai sbagliato nel primo caso o nel secondo e perchè forzi la cosa in questo modo :master:


Al di là di questo provo a dirti come farei io.
Prima cosa, se vuoi scrivere una checkbox con il flag, non scrivere il value, ma scrivi solamente checked
Quindi, nel tuo caso
codice:
<input name="AmericanExpress" type="checkbox" id="AmericanExpress" checked>
Quando fai la request di una check, il valore che viene letto è ON se è flaggata altrimenti nulla.

Quindi nella pagina in cui leggi i dati devi verificare questo:
codice:
If request.form("AmericanExpress") = "on" Then
  MiaAmericanExpress = True 'se nel db il campo è booleano, cioè Vero o Falso
  MiaAmericanExpress = "si" 'se hai impostato il campo come testo di 2 caratteri
Else
  MiaAmericanExpress = False 'se nel db il campo è booleano, cioè Vero o Falso
  MiaAmericanExpress = "no" 'se hai impostato il campo come testo di 2 caratteri
End If
Quando vai a scrivere la check con i valori che hai letto scrivi la input così:

codice:
<input name="AmericanExpress" type="checkbox" id="AmericanExpress" <%If MiaAmericanExpress = True (o "si") Then Response.Write "checked"%>>
In questo modo se la variabile risulta 'checkata' con la response.write gli imposti il flag attivo, altrimenti rimane una checkbox vuota.

Non so se mi sono spiegata