Christian might know more about the l option "l: load AppDomain for a fake Client (for debugging purposes only!)". I have never used that option myself.
When I think about it, it is probably a way to test the appdomains of the server, and avoids having to load a normal client when debugging the server. I guess this option is only useful for someone who works on the inner structure of the server. For functional changes we won't need that debugging option.
I have never debugged the server in SharpDevelop, I don't know how well that works with all the different Threads and AppDomains. I use TLogging.Log for displaying the values if I get a bug and try to solve it.
Debugging the client in SharpDevelop works, but you will have to increase the time-out values in the Server.config to quite big numbers.
The version.txt thing has changed in the past days, we now use developer versions, so no version 0.0.9 anymore. See http://discourse.example.com/t/new-nant-task-nant-patchdatabase-and-version-numbers/64 for information about this.
The version.txt is copied from db/patches to both Server/bin/Debug and Client/bin/Debug.