I'm not too familiar with how UIForms work with dependent fields, but I guess that when you change a dropdown value it triggers a postback to filter the data. Therefore, I would guess that in the method where you are trying to set the control value you should be setting the first dropdown's selected value, then rebuilding the second dropdown's data and setting its value, and so on for the other 2 dropdowns. The key is reloading the data for a subsequent dropdown when you set a value in previous dropdown.
Should look like:
form.FieldEditingControls["Gender"].SetValue(item.Gender);
DropDownItemsList_LoadData(); // you would need to implement this as a method or inline code
form.FieldEditingControls["ItemsList"].SetValue(item.ItemListID);