Do you know which service keeps failing? For example, if you go into settings->accounts and sync, then into your Google account as it is syncing, it may show which service (gmail, contacts, calendar) is giving an error.
Whichever one that it is, the solution that I recall when it happened to me:
- stop background sync
- settings->applications->manage applications, wipe data of whichever one is failing (calendar, gmail, contacts.) Note, however, that if you have any phone (as opposed to Google) contacts, they will be gone if you wipe data from contact storage, and any unsent email from the gmail app will be lost if you wipe data from gmail.
- start background sync again and let it refresh from the server