Don't forget that there is only one combo on the form (but several instances of it) thus there can be only one control source and one row source property value. I wonder if you have code that fires when you navigate from record to record (or leave or enter a control) but this code is modifying a value or setting something to Null. Or you've assumed you can modify the control source or row source property for one record. I'd suspect you have a code issue in the Current event if it's sometimes wonky when you have just opened the form. BTW, that event fires as you move from record to record as well.
As to why it doesn't work after an 'upgrade', I've seen this complaint many times here. It's usually due to some piece of code that while not properly written, seemed to have escaped the attention of the Access gnomes in older versions, but newer versions seem to be less tolerant of such code. You might have to post a db copy as noted. If you have code in events, open the form, put break points at the beginning (main form and subform) and close and reopen the form and then step through the code. Then interact with the form as before. You should then go to the break point for the current event when you change the active record - step through and see what's going on.
If you have no code, most of that was for naught. If you're using macros, I supposed you can set them to single step mode and try that. Don't know for sure, I don't use macros as a rule.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.