Risolto, scusate.
Praticamente era un problema di Postback.
Il popolamento della dropdownlist non era inserito in un blocco
IF (!IsPostBack)
....
e quindi allo scatenarsi dell'evento OnSelectedIndexChanged la DDL veniva ripopolata, e quindi il valore selezionato era sempre e comunque il primo.