Let $M$ be any TM.
Define $N$ as the TM that, on input $n\in\mathbb N$, runs $M$ for $n$ steps on empty input. We make $N$ accept if $M$ halts within those steps, and reject otherwise.
Note that $N$ always halts, no matter what are $M$ and $n$, since it only simulates a finite number of steps.
Consider the spec "$N$ rejects all $n$".
The partial correctness of $N$ w.r.t. the spec states that whenever $N$ halts, it rejects. But $N$ always halts, so partial correctness is equivalent to $N$ always rejecting. That, in turn, is equivalent to $M$ diverging on the empty input.
Therefore, if we could decide partial correctness (on $N$), we could decide the diverging problem (on $M$), hence the halting problem as well. But we know that is not possible, so partial correctness is also undecidable.