You shouldn't need hidden elements to delete all rows... presumably they all share a master id that you can use to delete in one application of the delete server behavior.
Re-insert using the same logic as the insert page.
Re-selecting the previously selected would require:
1) create a recordset to get the selected values
2) loop through it and create an array of selected values
3) Use in_array() to check if the value was selected in the <option> tags
Yes, delete should use the same trigger and be added before the looped insert.