Yo personalmente no usaría AJAX. Para los checkbox podés hacer algo así:
Código PHP:
<input type="checkbox" name="ejemplo[]" value="1"<?php if (in_array(1, $array_ejemplo)) {echo ' checked="checked"';} ?> />
<input type="checkbox" name="ejemplo[]" value="2"<?php if (in_array(2, $array_ejemplo)) {echo ' checked="checked"';} ?> />
Donde $array_ejemplo es un array donde tenés todos los valores de los checkboxes seleccionados pasados por $_POST. En caso de que sea la primera vez que abrís la página y aú no recibiste variables $_POST, esa variable la inicializás como un array vacío.
Para los selects es similar pero tenés que ir preguntando si el valor del select que recibís por $_POST es igual al value que estás imprimiendo, en ese caso imprimís selected="selected".
Saludos.