I have a UISlider setup with an initial value of 0.5 in the inspector. When I run my project and attempt to drag the thumb, it will immediately jump all the way to a value of 1.0, and stay there until I let go of the mouse button. All attempts to drag the thumb after this point work perfectly fine.
I looked into the code, and I can see where things are going wrong:
UISlider.OnPressForeground() calls ScreenToValue(), which internally references UIProgressBar.cachedCamera. On the first time ONLY, cachedCamera will fail to find a UI camera, and end up using Camera.main.
By the time execution gets to UISlider.OnDragForeground(), which calls ScreenToValue() again, UIProgressBar.cachedCamera now correctly finds the UI camera it's supposed to use.
Again, all subsequent calls to both methods will always find the UI camera, so they always work correctly, it's just the first call to UISlider.OnPressForeground() that causes the issue.
EDIT: The problem was that the GO with the UISlider on it was on the wrong layer-- everything else in the UI was on the correct layer. So now I'm confused as to why it ever started worked at all!