Hai forzato il div con runat=server, i valori settati lato client non sono visti dal server side, credo sia questo
siccome devi leggere dal codeBehind, usa un altro controllo (ma del framework, con <asp:..), come un hiddenfield appunto.
(il debug non so, mistero. forse legge dalle info di debug chissà dove)