It will not work to populate these lists from the records that hold the selected values. As you noted you will have only a single record show in the list. The trick is to get the lists to load just like when the user made the selections. You will need to do this by calling the same function with the same values as the onChange event for your main list.
One way you could do this would be by checking the selected index, if it is anything other than 0 then a selection has been made and the code in the onChange for that select list should be executed. Executing this code with the same values should cause the next select list to be properly filtered and populated. After you execute that code you may need to check the recordset to set the selected value properly.
This is a slightly custom approach to get the dynamic dropdowns to work in this situation but if it is implemented like this it should give you the desired result. Let us know if you have any further questions on any part of this.