For the record (since bandwagoning is INCREDIBLY common here on RZ), C# and Java tend to have similar memory usage because they're both managed programming languages. Your design is ultimately going to play the biggest role in memory usage in this case. So you shouldn't just switch to C# because of that, there's a lot more to it. If you absolutely don't care about hosting your server on Linux, writing quality C# is likely the answer for you. Microsoft's C# implementation is quite performant and it may be easier for you to write. If you want to be a sane person and host your server on Linux, your C# server is liable to not compare to a Java one. Mono simply does not perform anywhere close to the level that Microsoft's C# implementation or Java does.
That aside: congratulations on this. It seems solid enough and, in the very least, it gives people another toy to play with. Nice job!