Not sure if this is the reason why you are getting the problem, but i think the problem is that your dropdowns contain the name for both the id and the value in each case.
You say you are getting a '0' inserted, which means the database is expecting an integer.
you should really be storing the id for the value, which should be an integer from your table, - not a text variable.
i also noticed in your select statements, you are repeating the name field for each dropdown recordset, is there a reason for this ?
does this make sense ?
if not, please send a copy of your table structure and i can advise further