Hey Sylvain,
Don't worry, it can be daunting to look to transition from Portal Engine to MVC and figure things out.
Page Types
A page type should contain really the elements that make up what it is. A blog article shoudl have a Title, Date, Abstract, etc. I'm not one to ever advocate that you put a lot of design-orientated elements into a Page type (like a list of banners). Kentico has Page relationships which are better suited for adding presentation type things to a page. I have a Relationships Extended module on NuGet for the Kentico Admin and MVC site to help also in creating these relationships and leveraging them.
While it may be good to have a base Page Type that contains things like the Page Title, Navigation Title, Abstract, etc that will populate your meta data on all pages, that's as far as i would go.
For the DTOs and such, this is Kentico's recommended practice, it's not required though, it helps with testing and I myself am going to work on learning it, but you can just make normal API calls if you wish in your controllers to get the data for your views.
All That being said, by default the Url is set at the Page Type level. You don't need to though, please see my January article on restoring Dynamic Routing so the Page type no longer defines the URL structure.
Also please be aware i have a Kentico Boilerplate that has many of these features, helpers, and other items already set up, which you can also contribute to if you wish. I encourage you to check it out!
New Pages
Yes in MVC, you do need to create the structure first for Editors to work in. You need to make sure whatever Action/View is rendered contains the markup for enabling Page Builder Widgets to be used. But after that, they can create new pages and add their widgets and stuff. In my boilerplate i have a "Generic widget page" which uses dynamic routing (the NodeAliasPath = Url) and is just a blank page with a widget zone, so it's 'free form.'
You can do similar. In the upcoming Kentico Service Pack, you can also add alternative Urls which redirect to the main url.
MVC Structure
As noted, while the DTO and structure is 'good' and beneficial from testing, it is extra work. You don't need to do this, you can simply do normal MVC.
Kentico's Document / Data Query Engine is pretty powerful as it is and allows for easy querying of data without writing any extra code.
At last
No, you do not need to create these for each page type if you do not want to use the DTO / Provider model. You can just use DocumentHelper.GetDocuments("My.Class") to get your documents. For routing, you either have to define the route that matches the Url Pattern of the Page type, or do what i often do and just put the Url Pattern of {% NodeAliasPath %} and use my dynamic routing to let the Url decide. We are in the processes of making a "Page Template" system where you can assign a Controller/Action/View to a page and then leverage that in the dynamic routing. It will be on the Boilerplate once done so keep an eye out for it.
Hope this helps! Check out my blog and resources section on my site http://www.devtrev.com, as well as the other Kentico MVP blogs!