It should be straightforward, might be hard but I'm not sure about that. There's probably not tutorials for this, but everything(most) required is described in the manuals and these forums supplement the rest.
The next simplest thing to get started would be to get the kernel boot up and interface with some small set of hardware you can measure. GPIO/UART etc. Would be my choice of initial hardware support. Remember to go one step at a time. Get first concerned about getting it to boot up and after that get concerned with the interfacing (try blink a LED first!).
A small platform-dependent example kernel would work well as a kind of 'tutorial' you're asking for, but nobody seems to have done one yet! I am sure we'll get some as Raspberry Pi did not went under the radar of OS-developers and their communities.
How to apply the gained knowledge into your project then? You need to divide your kernel to platform dependent and platform independent code. Platform dependent code should be written in portable language and should be about the only code you don't need to rewrite for a kernel port. You also need to port the language's compiler if it's not ported already.. But... that's.. about it.