Impressive, a multitude of inquiries all bundled into one. I'll do my best to address them here, but keep in mind that I am currently developing an extensive course for Pluralsight on Knockout...so I can't delve too deeply in a mere comment box :)
1) How do you structure model-view classes?
I believe you are referring to view-model classes. My suggestion is to create a comprehensive view model that encompasses all the properties and methods required by the page. Place the view model in an enclosure and store all associated JavaScript in its own file. For instance, if your structure includes a customers.html page, you could have a customers.js file dedicated to your view model.
2) Should classes be separated or combined into one large entity (and how to modularize the large one)?
Each view model should have its own file. Typically aiming for 1 view model per JavaScript file (though related ones could be grouped together). Similarly, it's advisable to maintain a ratio of 1 view model per view (although some exceptions may apply).
As for Models, they can either be consolidated into a single models file or distributed across individual files. In smaller applications, I prefer a single models.js file as most models are straightforward, compact, and comprised of simple properties (albeit observables). However, this decision ultimately boils down to personal preference.
3) How can page transitions be facilitated?
The transition mechanism is not exclusive to Knockout, so conventional links or custom controls (such as menus, tabs, etc.) can be employed. It all comes down to your discretion. Once you've determined the method of navigating to a different page, there may arise a need to transfer data between the two pages for context. One approach is encoding data in the query string with an ID, while another involves utilizing local storage (for storing larger items client-side), among other alternatives. The choice largely hinges on the nature of the data being transferred. Oftentimes, I design self-sufficient pages to minimize the need for data transmission. And when transmission is necessary, I strive to minimize the amount of information exchanged, relying on key-based lookups (in AJAX calls or local storage...wherever the data resides).
I trust this sheds some light on the matter.
UPDATE: Feel free to explore the link to my Knockout.js course on Pluralsight