Ultimately, it comes down to communication and determining what is an ok level of compromise. If posts were being moderated away, then clearly the user has a mix of positive and negative contribution.
The user clearly shows promise and positive impact in the community, so the first step is to try to communicate with them about why the negative impacts are a problem and how to better avoid them. This is unfortunately not something that can easily be summed up in a short answer and greatly depends on the individual in question and what issues their posts have.
If this doesn't work, it comes down to making a judgement call about the overall contributions the user makes, both good and bad, and compromising if you can. If they post a lot of really great content and are of value to the community, then giving them some latitude may be worth it if you can do so without it feeling unfair or setting a bad example for others (not really sure what the problem was so can't really tell if it's possible in this case.)
This is a big judgement call on the moderation side, but if you lack the communication and persuasion skills to convince them to change, then it comes down to deciding if they are or are not an overall positive contribution to the community with all things considered. If they are, you give them the needed latitude, if they are not, you shut them down and take the loss of the positive and the negative together.