So I finally figured this out. When not using Chrome Web Store your manifest file should include a key (https://developer.chrome.com/extensions/manifest.html#key)
...
"key":"myawesomeextension"
...
Without this every time you install the extension on a different device (through chrome://extensions/ --> Load unpacked extension) it gets a new id and therefore the data being synced doesn't get matched to the correct extension - same extension with different ids = two different extensions in the eyes of Chrome.
There is no need for a key once the extension is in Chrome Web Store. Hope this helps somebody keep some hair at some point.