Turing machine which diverges on its own code
The language $K^c$ is clearly co-RE: given an input $M$, simulate $M(M)$ until it halts and then reject; if it doesn't halt, the simulation doesn't halt.  Now, any language that is both recursively enumerable and co-RE is actually recursive (exercise: prove this).  Since $K^c$ is not recursive (exercise: prove this), it cannot be recursively enumerable, either.

Your idea of reducing to the complement of the halting problem doesn't work.  Firstly, that's the wrong way around: you'd want to reduce the complement of the halting problem to $K^c$ to prove that $K^c$ is hard.  Second, it's possible for a set to be neither RE nor co-RE. (Why?  There are countably many RE languages and countably many co-RE languages, since each such set corresponds to a Turing machine and there are only countably many Turing machines. But there are uncountably many languages over any finite alphabet.) However, from your description, it sounds like you weren't trying to do a reduction but a diagonalization, similar to the proof of the undecidability of the halting problem.  That sounds like it could work but the method I give above is much easier.