Have you also tried posting this on the osdev forums at osdev.org?
Yep, http://forum.osdev.org/viewtopic.php?f=13&t=29536 - the third post by me is the same (or nearly) as the first post here.
I don't know the reason why GetDisplayStart is returning 0 for you. If you change it to something else with SetDisplayStart, does it return the new values?
Yes it returns the new value (if not way out of memory range - Bochs panics on Y position out of range)