Edit select dropdown field in a Matrix on the front-end
I was struggling with the same issue. Using your code I was able to get the select box to update by removing the [] at the end of your select name variable.

So this code wasn't working

&lt;select class="form-control" type="text" name="fields[userDivingCertification][ {{ block.id }}][fields][certificateType][]"&gt;

but changing to 

&lt;select class="form-control" type="text" name="fields[userDivingCertification][ {{ block.id }}][fields][certificateType]"&gt;

got it submitting correctly.

The other issue I was having with the data being wiped completely was due to the hidden type field not having the correct value. I had copied some code from elsewhere and forgot to change the value. Once I got it matching my Matrix Block Type handle it worked fine.