Just wanted to mention, I just upgraded this part of the project to 4.2 and the problem still occurs. One of the main instances of the problem is when I set the alpha value of a parent widget - some of the children do not update until the object is nudged or until I change window focus.
Edit:
After some probing it appears that the mIsVisible variable on the sprites that are supposed to render is getting set to false. This only seems to be changed from UIPanel.UpdateWidgets() when it calls UpdateVisibility on every UIWidget. For some reason, the sprites are being sent "false" to that function, which disables their rendering.
I tested the conditions that generate that false value and it appears that it's caused by UIWidget.CalculateCumulativeAlpha is returning a value less than 0.001 (presumably 0). I'm not sure why this would be the case. I've looked through that sprite's finalAlpha value and all of it's parents up to the UIPanel and they are all set to 1. Could this be an ordering problem? Maybe the sprite isn't receiving its final alpha soon enough?
Edit2:
Although I previously thought you had suggested that I upgrade my Unity version, it appears I am behind on my NGUI version and the changelog indicates that this problem may be solved. I'm downloading the latest now and I'll edit this post with my results.
Edit3:
Upgrading to the latest NGUI version solved the problem. Thanks!