There’s nothing ungrammatical about “They don’t speak good Chinese.”
“Good Chinese” refers to standard, grammatical Chinese, and is perfectly fine to use.
Perhaps you are confusing “I don’t speak good English” with I don’t speak English well,” two similar sentences that can have very different meanings.
So you are saying that they speak Chinese, but the equivalent of a ‘ghetto’ version of Chinese and speak that dialect well?