I too was having this problem where my Safari bookmarks moved on their own. The notion that it's caused by iCloud synchronizing devices makes perfect sense. However, my MacBook Pro is my only Apple device. I don't have an iPhone, iPad, or other iCloud-synchronizable device, and my iCloud account confirms no devices connected. So I decided that iCloud is "stuck" and was re-ordering my bookmarks because it can't update the data that it has. My next actions turned out to be a "simple" solution, but it was very messy.
- Go to iCloud preferences and click on the checkbox to turn off Safari synchronization.
- Go to Safari and arrange bookmarks. (Disconnecting Safari from iCloud is certainly the answer to leaving bookmarks alone.)
- Return to iCloud preferences and click on the checkbox to turn on Safari synchronization.
- iCloud asks whether to merge with whatever is stored on iCloud.
- At this point, I click the Cancel button, hoping that iCloud will discard what it has and start fresh with what's on Safari at the moment. Instead, the dialog goes away and the checkbox for Safari remains unchecked.
- I click the checkbox again to turn on Safari synchronization.
- When asked whether I want to merge data, I click the other button.
What happened next was infuriating. Every bookmark I had for the past several years, it seems, was reloaded. My Bookmarks menu and Favorites bar ran on forever with links old and new. Even duplicates, triplicates, etc. I encountered one bookmark repeated seven times in different places. On the bright side, the "Bookmarks Menu" where I arranged everything was renamed "BookmarksMenu" and everything in it was in the order that I left them. So, I spent the next hour-plus wiping out everything unwanted outside of "BookmarkMenu", as well as tweezing through folders and subfolders in the Favorites bar. Then there was a bit of a game restoring "BookmarksMenu" to "Bookmarks Menu", but the way to do it turned out to be easy.
In the end, disconnecting and reconnecting Safari from/with iCloud and merging data seems to be the solution. (In this case, that is.) In the time I've spent cleaning up the mess, my bookmarks have stayed where I left them. And . . . [checking] . . . they're still where I left them. The question now is whether this solution will maintain, or if iCloud data will get "stuck" again at some point.
What would be great is some way to reset iCloud data with a click, like trashing a corrupt plist file from the Library. Whether from System Preferences, iCloud.com, or even Safari, a button to reset or trash synchronized data and rebuild from connected devices seems like a convenient solution. It would have saved a lot of time and effort.