First of all, some general information: there is a really good MVVM tutorial from Jason Dollinger available in Lab49
edit Video declares most of the needs when creating a WPF application. Dependency injection and connection to WCF are also provided (but not in depth, speaking of WCF, but with a really strong way to find good solutions here)
The source code he developed is also available here.
In my opinion, everyone related to MVVM should see this!
=> 1. How should I handle the model generated by EF? Get rid of it and go for the first code approach by manually doing a mapping to the database?
AutoMapper can help here. Codeplex of AutoMapper Your problem seems perfect for this!
=> 2. To transfer WCF data, should I have relational properties in my model, that is, the Product has a Client instead of CustomerId?
Do not mess with the model! The product is part of orders, and orders have a customer identifier. Stick to it. In your service layer, you are likely to end up with identifiers. Since you probably do not change products and customers here. If you do this (and my order order is not suitable), you can transfer dynamic data, not static.
=> 3. Should I have an extra layer between WCF and ViewModel for storing and processing data, or is it best to directly connect the ViewModel to WCF?
In most cases, I have a utility level that is introduced into my viewmodel construct in the constructor. This can be considered a different layer, since it processes the WCF client side and processes the “changed” events on the server side. (line changed, new line, line deleted, etc.)
edit If you need to send events of your service level, it is much easier to have this small, light layer between WCF and ViewModel. As soon as you have to, you are likely to come up with such a layer naturally.