1) using 2 recordsets for this is correct.
2) the recordsets should come after the update record code, this is because you are not redirecting to another page.
any time you dont redirect to another page after update, you should have the recordsets after the update
3) The error after moving the recordsets is because you are using the recordset value for the key column value.
instead, create a hidden element in the form, bind the initial value of the hidden element to the rsUsers.UserID column and in the update record wizard, use the hidden element for the key column value.
4) in the radio button, you have the checked attribute set by default:
<input name="radio" type="radio" id="defaultaddress" value="<?php echo $row_rsAddress['AddressBookID']; ?>" checked>
change that to:
<input name="radio" type="radio" id="defaultaddress" value="<?php echo $row_rsAddress['AddressBookID']; ?>" >
5) after you have deleted the static checked attribute, click the dynamic button in the property inspector. Click the lightning bolt icon next to Select value Equal To and select the rsUsers.UserShippingDefault column