Your example works but the main difference is that you're binding to your grid with hard coded values.
I'm binding to mine using a DataView, maybe there's something with the way I'm binding that's causing this, it's been a problem for awhile now and I really need it resolved.
I'm binding like this:
DataView dataView = new DataView(myTable.Employees)
sfDataGrid.ItemSource = dataView.ToTable();
I'm also using 2 GridComboBox columns which I had to create a Control Template and Style for in the XAML to get it to display properly, I don't know if this helps narrow down what the issue is.
Also, is there a way I can securely send you guys an example of my code so you can take a look?