Ok, I've read your post there, and every step until "Projects->Save as User Template" can be done by you, and you only will need to distribute that template.
Now you may ask about the paths, well Code::Blocks 1.0RC2 support variables in the form $(varname), so you can create them in the Custom Variables tab of the Project Options.
Example:
$(KERNEL_PATH)=C:\cygwin\usr\local\dc\kos\kos\kernel\arch\dreamcast\kernel
Usage: $(KERNEL_PATH)\startup.o
will be expanded to
C:\cygwin\usr\local\dc\kos\kos\kernel\arch\dreamcast\kernel\startup.o
And then, you only tell your users to change the variable only.
And you must know, in the SVN HEAD version, Global Variables are supported, so it'll even ask your users the first time they'll open the project.
The compiler part will be more tricky, because you should copy/clone another compiler (like MinGW), and the you can call it "DC compiler".
The load/saving of settings will suffer a major change in the RC3 version (it doesn't use the registry anymore, now it's stored in xml), the changes are in SVN HEAD if you want to look.
But another way would be to recompile Code::Blocks with the support of that compiler, at least for now, because a major compiler revamping is planned for version 2.0 which would be a lot more flexible.
I can guess that if you can get a native (ie. non-cygwin) environment to build it, everything should become more easy.
EDIT: If you want to have a look at the SVN HEAD ver. you can try an unnoficial binary build here:
http://paginas.terra.com.br/informatica/mauricio/codeblocks/