I just checked some of my old source code and found that I was explicitly telling it which fields to return. For example:
query.IncludeRetElementList.Add("UnitOfMeasure1");
query.IncludeRetElementList.Add("UnitOfMeasure2");
query.IncludeRetElementList.Add("UnitOfMeasure3");
I don't remember if I did this because of the same problem you're having, but I do know I got the UOM fields in the response. Hope this helps!