UART is really just a hardware designation. There are different communication protocols (languages or even just dialects) that can be used with that hardware, and different versions of displays and controllers can have different firmware that makes communication either impossible, or degraded (some data or parameters may not be understood). If they're all using the same exact protocol they'll all communicate...but it's still not standardized, so not guaranteed to work together.
You can also run into the issue that the menu system programmed into a specific display model and version might not match the settings available or needed for a specific controller model and version--they'll talk to each other fine, but the display throws away some info the controller sends it, and doesn't send the controller some information it needs to change settings from the powerup defaults (or it sends it's own defaults that the user does not have access to change, there being no menu available for it in that particular firmware version).
This last problem I have seen with Kingmeter displays on Lishui controllers I have here, and similar issues reported with assorted controller/display combos here on ES and elsewhere by others. With the display that came with one controller, it has access to all of the settings, but using a different otherwise-identical display from a different kit that doesn't have menus for changing some of the settings, I can't access them on the first kit's controller either. (but the display that does access all the settings on one does also access (some of) them on the second kit that I couldn't access any of them from with it's original display. I can assume that the ones the second controller doesn't respond to in the first kit's display is because the controller has those locked out, or that the values it's intended to respond to are not being sent by the display, because their firmware was not written to work together.