Good day.
As in many cases, when using the MVVM pattern, the VM part simply duplicates the Model. Duplication occurs at 90 percent. I would like to temporarily get rid of full duplication, but also so that the connection between VM and M remains as separate. 
Above is how it is now. When updating the Model (not from the VM side), an update event of the model is triggered, according to which the VM reports what is worth updating in the View (it seems called DomainEvent)
But there is a lot of duplication of properties (and the Model logic, which is more important and more problematic).
Decision:
Inherit the Model and override the updated properties.
As a result, all Model logic will be written to the base. I just need to call OnModelCreated ();
To override the properties, I can set the name of the attributes in the View (for communication) or in the transfer method OnModelCreated ();
Question: What is the reason for this logic for an application that can grow greatly? So everything is cool: View knows nothing about M, VM knows everything about M, M knows nothing about VM.
Question 2: how much does this match the pattern? (All the conventions that the pattern is not a dogma, I understand)
UPD 2:
Approximate description of the program in Update 2 questions: Synchronization Model and ViewModel, when the application - Client