I think I just managed to answer that second question for myself. I'll post the answer here for anyone who has a similar issue.
I made a copy of my files onto a local machine to test this out...
I then opened a .kcm file and changed some of the characters before looking at the code module in my solution. When I opened this up I was pleased to find that the changes I had made locally were represented in what was essentially a copy of the server version of the solution. This leads me to think that the reference K2 uses is just from the folder that the solution is in (i.e. if your solution was in a folder called K2 and you code files were in a sub folder of that called Files, then, as long as the subfolder still had the same name, the path to the folder called K2 was not taken to be part of the refernce to the files.)
I hope this makes sense to anybody who is trying to look for a solution to this problem as I know how frustrating it can be to get close to a solution only for it to be a garbled mess (as I feel this may be).
Matt