Well, there’s part of the problem. CloudKit has been known to be problematic for many people (and other developers). It’s not for everyone or we would have stopped offering it. However, it has been problematic for some.
Do you actually need to use a remote sync option?
There is a forum post on syncing: Sync Types Explained. This is a good place to start.