This issue exists for about a year now (it seems that this bug was introduced in iOS 9.3.1 and is still present in iOS 10.2).
The problem seems to be that after an App is launched and tries to load its settings from NSUserDefaults, it does not get any data. It looks like NSUserDefaults sometimes "forgets" to load its data from the file system. If you manage to kill the App before it tries to store new data in NSUserDefaults and the restart the App, chances are good that this time NSUSerDefaults does load the data correctly and the App can get all its settings again. But as soon as the App stores anything in NSUserDefaults, all old data is overwritten and lost forever.
But killing an App before it can store anything in NSUserDefaults is usually only possible for your own Apps when running them in the debugger.
There are a lot of threads here in the developer forums related to this topic. We all hope that Apple will someday find and fix this annoying bug. Even though with some luck the issue won't show up very often, it is nevertheless very annoying. Please send bug reports to Apple, so Apple learns that this is serious.
Here are a few other related threads:
https://forums.developer.apple.com/thread/44264
https://forums.developer.apple.com/thread/44685
https://forums.developer.apple.com/thread/61287
https://forums.developer.apple.com/thread/28030