You can share model code between the two, but the app running on the iPhone and the app extension running on the Watch each have their own instances of model data. Like, let's say your model is a plist, you'll have plist files on the iPhone and separate plist files on the Watch. And the model controllers on the iPhone run separately from the model controllers on the watch, as if they are running on two separate computers (because they are).
To share model code, you'll need to create a shared framework. In fact, you'll need to create two shared framework targets: one will be a "Cocoa Touch Framework" target, and the other will be a "Watch Framework" target. But you can include the same Info.plist, source code, and resource files in each.
All the iOS-specific code or watchOS-specific code (which will include your WCSession delegates) needs to be outside of this shared model code.
Here's a post that talks about setting up the frameworks in more detail: http://stackoverflow.com/questions/34387128/how-to-set-up-a-project-with-shared-frameworks-between-ios-and-watchos-2-similar
To share model data, you use WCSession to transfer files or dictionaries back and forth.