For what it's worth, removing the vh properties and replacing them with em allows the scrambled ebook to display on my Sage using the RMSDK renderer. Converting original epub to kepub either by a simple rename (not recommended) or by using kepubify or calibre with the KoboTouchExtended driver allows the resultant kepub.epub to work happily using the WebKit based renderer on my Kobo Sage.
BTW, when I tested the original scrambled files with Sigil and it's renderer options, Thorium and several other apps, the display was not consistent between them. The vh property worked on some and on others, appeared to be disregarded with the h1 and h2 being displayed at the top of the viewport while the h3 did maintain it's margins. One antique program was also unhappy with the shortcut margins (it needs either margin ww,xx,yy,zz or using the margin-top, bottom, left and right forms)
Please note that simple renaming is a quick and dirty hack for testing and is not recommended by Kobo as it can and will cause text selection and other issues. Either kepubify or using the KoboTouchExtended driver will modify the original epub to more closely match a Kobo supplied kepub.
And also remember that like all renderers, Kobo's renderers do not implement the full epub3.x specification. There a test page (
www.epubtest.org) where the compliance of various renderers were rated though I'm uncertain as to when the last updates to the site were made.