The problem is that you are using the same recordset for all three select lists. You should have a single recordset for each of these three select lists. Each recodset should only select the column and id from the table for the select list you are working with. It looks as though you are using the distinct keyword correctly, for more info on it have a look here at the w3schools site:
sql_distinct.asp
I think if you had these three select lists working with three unique recordsets you would get the result you are looking for.