Am I going about this entirely the wrong way, or am I on the right track but overlooked something?

You are on the right track.

Untar the sources in /home/foo/linux (or anywhere, really - there's absolutely no reason you should be putting them in /usr/src/linux or compiling as root).
cd /home/foo/linux
gzip -dc (wherever you put the patch)/kernel-patch-beta11d-beta12.gz | patch -p2

Another useful option of patch is --dry-run - let's you test things non-destructively. Without it, failed patches are a real pain to reverse.

Next hurdle will probably be setting up the cross-compilation environment...

Good luck,
Borislav