In our case, we finally figured out that the application does change it. In my example above, the UI loads first and then the data behind it. When the UI first loads, the box in question is a text box. As the data loads in the page, the box changes to a combo box.
It will always eventually change to a combo box, but we don't have a way to predict when that will happen in different environments because we could have very little data or we could have a lot of data.
Now that we know it will always change, we could update our test to Wait for the combo box to occur. We built the test with two mappings and IfObject when we didn't know what was happening other that it was changing sometimes. That's why I suggested that solution for you. If you can figure out why/when it's changing, then you can probably be more specific and use a Wait.