I am not sure you would like to go through as much trouble as my solution will require, but here is it:
First, you should store assembly version in AssemblyInfo.cs file. This will allow sharing version (and other company - specific info) between projects just by referencing a common AssemblyInfo in all your projects. You can do it by adding existing file to a project as a link. For example, all our projects have two AssemblyInfo files: one local, project specific (GUID, etc...), and one common, with version info and company name.
[assembly: AssemblyFileVersion("1.3.100.25")]
[assembly: AssemblyVersion("1.1.0.0")]
Second, if you have not done this already, take the WIX version out of WXS file and put it into a separate WXI file. Again, this will allow separate editing of version (and other constants, if needed), and referencing it in several projects:
<?include ..\..\..\Common\WIX\Version.wxi ?>
Then, you will have to write a build task for MSBuild, and incorporate it as a pre-build dependency for all projects. In the build task, you can take version number from WXI file and put it into AssemblyInfo file, or vice versa. You can even store version data in a separate XML and inject it into both WXI and AssemblyInfo. Reading and writing WXI and AssemblyInfo is a simple string manipulation in C#, do not bother yourself with Reflection and stuff.
This third step is the only required one, and the most difficult. You should probably do all this if you have a lot of projects, or using automated builds.