I find that using SetScrollPercent() then using get_CurrentVerticalScrollPercent() right after it sometimes (actually fairly often) returns 0
SetScrollPercent()
get_CurrentVerticalScrollPercent()