Though frustrating, what you are describing is extremely common, and not only with kids who train early, though it seems more likely to happen with early trainers. There are two main ways of addressing it.
1. Muscle through, and deal with the accidental and not-so-accidental messes. Reward and punish, make charts, etc. This could mean many cleanups over many more weeks or months, and the child becoming tense or resentful about the whole process.
2. Accept that training is complicated for the child, both physically and emotionally. A lifetime commitment to using the potty can suddenly loom large and seem pretty daunting. Allow the child to go back to diapers/pullups. Allow him to consider the pros and cons of being in diapers vs. big-boy pants. Kids given this freedom very frequently choose to use the potty after another week to few months, because it dawns on them that getting diapers changed is still a bother that takes them away from their preferred activities.
Kids want to train when they are ready, just as they want to walk and talk when they're ready. Pushing doesn't make it happen faster.
Your son's nighttime accidents may simply be beyond his control if they happen when he's deeply asleep. Overnight training happens later at night for some kids, especially boys. The bladder and nervous system need to be fully mature for training to be for keeps (and even then, an occasional wet bed happens for lots of kids).