Sometimes this trick will work:
- Go to Settings>Mail,Contacts,Calendars>Default Account (in the Contects section), set this to iCloud.
- Go to Settings>iCloud, turn Contacts to Off, choose Delete from My iPhone when prompted.
- Download the app My Contacts Backup. Use this to backup the remaining contacts on your phone (from the other groups) as a vCard attachment to an email that you send to yourself.
- Go to Settings>Mail,Contacts,Calendars and turn off contacts syncing with these other services.
- Go to Settings>iCloud and turn Contacts back to On to sync back your iCloud contacts to your phone.
- Open the My Contacts Backup email and tap the attachment to import the contacts from the other groups back to your phone. They should be added to the iCloud group, and as a result, will sync to iCloud.
You can then decide whether or not to continue to sync contacts with the other accounts to your phone. If you do, you'll see duplicates unless you open contacts, tap groups, tap these other accounts until they are unchecked, then tap Done. They will still be on your phone, but will be hidden from view.