Hello Alec,
Let's first discuss the reverse engineering process. You are not getting additional code generated in your part of the partial class. Only the OpenAccess part is regenerated. If you want all code generated from scratch you can delete the generated class files first. It is implemented in this way because we want to avoid to overwrite your code.
How do you detect that the employee collection is empty? Are you accessing the field or are you just looking inside the debugger?
The debugger can not do the lazy loading, because of that you will see a null collection before you access the field in your code. Please add the public property by hand and see the content in your application.
Kind regards,
Jan Blessenohl
the Telerik team