The Calendar app on your Mac by default will have two calendars listed as "On My Mac" ("Home" & "Work" are the calendar names). Be careful because any events added here will not sync to any other devices. I recommend deleting these calendars entirely. If you have many events on these calendars, you can drag & drop each event to the correct iCloud calendar. Or you can select each of the "On My Mac" calendars and go to File > Export > Export to save them to a file. Those exported files can then be imported back into the appropriate iCloud calendar.
By default all events on iPhone & iPad should sync to iCloud. Check that you don't have another calendar setup (possibly through Gmail, etc.). You can check this on your iOS device by opening Settings.app, and selecting Mail, Contacts, and Calendars. Under each account, you will see a list of services that account is providing - for example, it might say just "Mail", or "Mail, Calendars, Notes". You can select the account and switch off extraneous calendars to prevent events from being created there. Also, scroll down on that page, and you can change the Default Calendar.
You can also login to iCloud.com and view the calendar as it exists on the actual iCloud servers. This should help you to deduce which devices are providing the most trouble.