Okay, part of the problem (though I don't understand it) was that I was settting ReadOnly and then calling an AcceptChanges. When I moved the ReadOnly command to a spot after the AcceptChanges command, it started working, finally.
I have no idea why this made the difference.