You've almost got it. If the language is context free, then it has a pumping length $p$ such that every sufficiently long string in the language can be subdivided in a certain way and "pumped" to produce more strings in the language.
You've picked a good string to use as a counterexample: $\mathtt{a}^p\mathtt{b}^{p+2}\mathtt{c}^{p+1}$. We should be able to subdivide it somehow into a string of the form $x w_1 \,y w_2\, z$ where $|w_1w_2|>0$ and $|w_1yw_2|\leq p$ and every pumped string $xw_1^kyw_2^kz$ belongs to the language. If we can show that it's impossible to pump this string no matter how we subdivide it, we'll have proved that $p$ isn't the real pumping length, which proves by contradiction that there isn't a pumping length and the language isn't context-free.
Now, notice that for this specific language, if this string is pumpable, the "pumping" components $w_1$ and $w_2$ must have only one kind of letter in them. Otherwise when you pump them, you'll get a jumbled string like $\mathtt{a\underline{ab}\,\underline{ab}\,bbbbbbcccc}$ which won't be in the language.
Finally, remember you can pump up or down: the string $xw_1yw_2z$ can be pumped down to yield $xyz$ or pumped up to yield $xw_1^k y w_2^k z$. When you pump your string down, it will decrease the amount of (at most) two of the letters while keeping the other letter count the same. When you pump your string up, it will increase the amount of two of the letters while keeping the other letter count the same.
Notice that your string $\mathtt{a}^p\mathtt{b}^{p+2}\mathtt{c}^{p+1}$ is so precarious that one of those two pumping directions will result in a string that is no longer in the language because the relative counts of $\mathtt{a},\mathbb{b},\mathtt{c}$ are thrown off. Hence the language is not context-free.