Since the items in the comboBox are freshly loaded from the DB, these instances are not the same as the gmcTypes of the gmc-items in the grid. They may represent the same thing (they have same values), but they aren’t "The Same"™, therefore the standard object-equals doesn’t work there. If you debug to that point, you will see that your JVM gives the object in gmc.getType() a different object identifier than the object in gmcTypeComboBox.getValue()
To fix this, do one of the following:
use your line above, which compares only the ids, (I recommend this. whats wrong with it?)
override the equals(Object obj) method on the GmcType class to compare only some values instead of the whole object itself, or
reuse the objects that your grid-dataprovider is using for the combobox also (not always possible)