With the relevant firmware portion at hand it should be possible to "disassemble" into somewhat readable form from which you might be able to reconstruct your original code. Your application was compiled into intermediate code before uploaded to flash, that's why you must disassemble the binary downloaded and yes, there are tools for this.
.NET Micro Framework does not deploy assemblies directly, it converts them to PE format (*) first. I am not aware of any disassembly tool that can handle it, so you'd need to write your own. Unfortunately, the .NET MF PE format is not really documented, you'd need to ask Microsoft team for the official documentation or spend some time digging into .NET MF source.
Have you tried recovering data from the hardisk? There are specialized companies that can do very advanced recovery, even replacing broken electronics or mechanical parts, but of course that is not cheap.
So unless the application is critical, i.e. you cannot spend the resources by writing PE disassembler or paying for data recovery service, then probably starting from scratch is the only option (and hanzibal is right, the second pass produces better result much faster )
(*) That is special .NET MF format, not the usual Portable Executable