I've always had problems with decompiling and Reflector, try
DotPeek[
^].
1. You only really need to decompile the one you need to modify. If you change an API in the DLL it may require you to change the EXE.
2. There are tools out there that let you work directly on MSIL and modify inside the tool, but I would prefer to go back to code and recompile the entire thing. The "best" one is the one that works in your situation with the least amount of effort.
3. I'm not sure what you mean "correct" source code. If you mean the code without errors, try the tool I linked above. It will convert to C# and people have had good results with it. No tool is 100% effective though since the compiler may include optimizations that are not possible to replicate in source.
4. A lot of decompilers (Reflector is one with this problem) doesn't make separate Designer.cs files. I'm not sure if DotPeek will create designer files but there isn't a good way around this. Designer files exist for the pure reason to make it easier to separate designer code from user code, after it runs through the compiler its impossible to determine if it was designer generated or user generated.
5. The solution structure is the one that compiles, technically folders and internal structure of the solution are only there to make it easy to organize code, and again, this structure is not replicated in the compiled file. The decompiler has no way of knowing how this was laid out (it can guess based on namespaces), but there is no way to duplicate the original structure. As long as all the files are there and compiles back into the right namespaces and types, its as good as you can hope for.