Translation:He is not a charming man, but he is generous.
I struggle with this too. My understanding is that we should use "c'est..."when it is followed by any kind of determiner. A determiner might be something like an article (le/la etc) or a possessive adjective (notre/ma, etc). So we get sentences like "C'est une femme." (She is a woman) or as in the case above with "Ce n'est pas un homme charmant..." Whereas if être is followed by an adjective or an adverb, it is fine to say "Elle est intelligente" or "Il est charmant". There are all sorts of explanations and examples online, but I like the rule of thumb I found in this article: https://www.frenchtoday.com/blog/french-grammar/cest-versus-il-elle-est : Do you have a noun? If so, use c'est. (That article link came up in a DUO discussion - thanks to that person!)
According to this page: https://parlez-vous-french.com/la-place-des-adjectifs-en-francais/ (Sorry, it's in french) it's one of the adjectives that changes from objective to subjective opinion when placed in front of the noun.
So if I interpret it right cette charmante voiture means that I think the car is charming but others might not; whereas cet homme charmant is objectively charming to everyone. Possibly he has a charming way about him.
The page also lets you download a list of words for which this subjective/objective rule applies. It's pretty long.
I make no claims on the accuracy of this site but I do know that Sitesurf has mentioned a similar rule before.