Generalizing quantum teleportation for qudits

In an answer to a previous question, Generalization for n quantum teleportations, Craig Gidney states:

The more complicated way to generalize teleportation is figuring out how to make it work on qutrits and qudits instead of only qubits. Basically, instead of using a "basis" made up of tensor products of X and Z matrices, you need to switch to a basis based on clock and shift matrices.

How can quantum teleportation be generalized for qudits?

Let's define the shift and clock matrices (the generalisation of the Pauli X and Z matrices) as $$X=\sum_{i=0}^{d-1}|i+1\text{ mod }d\rangle\langle i|\qquad Z=\sum_{i=0}^{d-1}\omega^i|i\rangle\langle i|$$ where $$\omega=e^{2\pi \sqrt{-1}/d}$$. Now we can define a maximally entangled orthonormal basis (the equivalent of the Bell basis): $$|\Psi_{ij}\rangle=X^iZ^j\otimes\mathbb{I}\frac{1}{\sqrt{d}}\sum_{k,l=0}^{d-1}|k\rangle|l\rangle.$$ (Reader exercise: verify that $$\langle\Psi_{ij}|\Psi_{kl}\rangle=\delta_{ik}\delta_{jl}$$.)
The teleportation setup is basically the same as for qubits. Alice holds an unknown qubit state $$|\psi\rangle\in\mathbb{C}^d$$, and Alice and Bob share the two-qudit state $$|\Psi_{00}\rangle$$.
Alice performs a measurement between her two qudits using the basis $$|\Psi_{ij}\rangle$$, and gets an answer $$(ij)$$. Let's assume that the answer is $$(00)$$. In this case, Bob receives the state $$d^2\text{Tr}_A\left(|\Psi_{00}\rangle\langle\Psi_{00}|_A\otimes\mathbb{I}_B\cdot|\psi\rangle\langle\psi|\otimes|\Psi_{00}\rangle\langle\Psi_{00}|\right)=|\psi\rangle\langle\psi|,$$ i.e. the state is perfectly teleported. What happens for the other measurement results? We need to calculate $$d^2\text{Tr}_A\left(\left(X^iZ^j\otimes\mathbb{I}|\Psi_{00}\rangle\langle\Psi_{00}|Z^{-j}X^{-i}\otimes\mathbb{I}\right)_A\otimes\mathbb{I}_B\cdot|\psi\rangle\langle\psi|\otimes|\Psi_{00}\rangle\langle\Psi_{00}|\right)$$ But this is the same as $$d^2\text{Tr}_A\left(|\Psi_{00}\rangle\langle\Psi_{00}|_A\otimes\mathbb{I}_B\cdot\left(Z^{-j}X^{-i}|\psi\rangle\langle\psi|X^iZ^j\right)\otimes|\Psi_{00}\rangle\langle\Psi_{00}|\right)$$ so it's as if we're teleporting the state $$Z^{-j}X^{-i}|\psi\rangle$$ and getting measurement result $$(00)$$. So, we know that Bob receives $$Z^{-j}X^{-i}|\psi\rangle$$, so when Alice sends Bob the 2-dit message of her measurement result $$(ij)$$, he can apply the correction $$X^iZ^j$$, and he's perfectly received $$|\psi\rangle$$, no matter what Alice's measurement result was.