StarUML is an open source project to develop fast, flexible, extensible, featureful, and freely-available UML/MDA platform running on Win32 platform. The goal of the StarUML project is to build a software modeling tool and also platform that is a compelling replacement of commercial UML tools such as Rational Rose, Together and so on. (from: old projects of StarUML, this project has been discontinued).
This tool supports UML 2.0, Model Driven Architecture, and Plug-in Architecture (C++, Delphi, C#, VB, ... modules). As your request, StarUML has C# Profile, Code Generator and Reverse Engineer. You can generate documentation automatically using Microsoft Office. It's free. See here.
The good news: StarUML starts the new version project (since long time no updates).
StarUML 2 is the new project from MKLab as the next version of StarUML v1. The new version is compatible with UML 2.x standard and supports totally 11 kinds of UML diagrams. You can easily find and install extensions from Extension Registry. Moreover, anyone can write extensions using HTML5, CSS, JavaScript and Node.js. Open APIs allows to add Menus, UI, Dialogs, even new modeling languages (e.g., ERD, BPMN, SysML, etc.). StarUML 2 provides completely new platform-neutral user interfaces (Dark Theme, Quick Edit, Dialogs) while keeping usability, simplicity, and modern design trends. (taken from http://staruml.io).