My project has a simple, clean art style, so the scrollbar I've set up uses a 'Simple' sprite type for its foreground element (to just show a solid rectangle). At the top and bottom of the scroll range all is good, but when anywhere in the middle the scroll bar's size switches to be a fixed square that bears no relationship to the UIDraggablePanel's content...

I've dug into this and the problem appears to be related to this code inside ForceUpdate() of UIScrollbar:
mFG.width = Mathf.RoundToInt(fgs.x + fg.x + fg.z);
mFG.height = Mathf.RoundToInt(fgs.y + fg.y + fg.w);
if (val < 0.999f && val > 0.001f)
{
mFG.MakePixelPerfect(); // << Only called when not at top/bottom of range
}
UISprite's MakePixelPerfect call is specifically testing for a Type.Simple and is effectively replacing the scrollbar's computed mFG.width/mFG.height values with the texture atlas dimensions of the sprite's image. I guess most people don't see this problem because they have fancier scrollbar's using Type.Sliced?
Not sure of the best fix. For now I just have the call to MakePixelPerfect commented out.