You can do it, but its hard / ugly.
in your code you can check the version of Umbraco you are using and branch to Separate methods for each one. and use reflection to get the extra properties.
its not nice - but it does work (had to do it in uSync a few times 😞 -
key is code in a method is evaluated when the method is loaded, so if you have something that might cause an exception in one version of Umbraco it should be in a method behind an conditional check, so it never even gets to the point of evaluation.
but in this case with extra properties Relection might well be enough (you can check to see if the model has the extra property and get and set the value using those methods.