I forgot how long I am using Google Sync and BIS sync. Maybe more than 2 years. Unfortunately, Google Sync will be removed from Google Mobile do not know exact date at the moment though.
Coming to sync and duplicate problems. Here is my own solution to that.
Calendar sync: USE BIS.
1) Google Sync cannot handle recurring events, and that causes duplicate calendar entries. BIS sync do not have such a problem.
2) Google Sync sync only a part of your calendar entries (1week past, 4weeks ahead. This may be changed in options, but still limited. No complete sync available for Google Sync) on the other hand, BIS sync everything.
Contacts sync: USE GOOGLE SYNC
1) The biggest problem on BIS contact sync is coming with Address fields. As that is already mentioned in above posts I will not go in details here. Google Sync do not have such problems.
2) You need to make some preperations before using Google Sync for the first time. I explained my way below.
3) Be warned that BIS sync will only sync your own Google Calendar. Not the ones you subscribed.
So, if you will start using Google Sync for contacts for the first time, or if you just did an OS upgrade on your phone, you need to do some preperations before starting to use Google Sync.
Very first time users of Google Sync: You must have a complete address book in your BlackBerry device. That is my personal starting point. Which is a must in my solution. You should manage to have all your contacts in your BlackBerry device address book. Period.
Preperations for Google Sync:
1) Make sure that you have all your contacts restored in your BB device as described above.
2) Delete all contacts from your Gmail Address Book on the internet using your computer browser. Make sure that it is completely empty your "My Contacts" group in your Gmail account. Or, you will most probably have duplicate contacts on both ends.
3) Load Google Sync, setup for contact sync only, start syncing.
Very First Time Sync: You may encounter an error during sync operation. With red letters saying last sync attempt was not successful and ended with errors. Which means sync is not setup correctly, yet.
1) Do a battery pull, and retry operation.
2) If battery pull did not solve problem. This means there is a problem in your contact's records in your device. Check Google Sync log. Hit menu button, and see log in menu items. Copy and e-mail it to yourself. Check it carefully. Go directly to the end. Read upwards to understand which contact triggered an error. Find that contact in your device, correct it, and start sync again.
I was hit with that error during my first trials. I found that there is a contact in my device which I cannot see its details. BlackBerry was not able to read details of that contact. Maybe a corrupt address book. Also, there was another contact in my device address book which had non-standart characters instead of readable letters in its name. Correcting such problems solved errors on Google Sync.
First sync will take considerable time depending on the amount of contats in your device. After that Google Sync will make its work in the background.
Once Very first time sync is completed, you will have all your contacts in your gmail account in the internet. No address format problems, nothing. Since your device have all your contacts and error free contacts. Next time, simply delete your gmail account contacts, and start sync on your device. It will do its thing.
Hint-1: You may sync your contacts with format problems in the address field, or duplicates. You may sync with such records. After sync finishes OK, you may use your computer to correct formats on your gmail account. I found it easier to have a correctly formated contacts during my first times.
Hint-2: Do not attempt tu use Gmail's remove duplicates tool. I messes your records. Puts several addresses in your contacts. Takes wrong phone numbers into wrong contacts. Use it to find out if you have a duplicate contact, and which one it is.