It appears that template parameters, system, and environment properties have priority over project level properties. So if a template and a project specify the value for a property (whether it's a parameter, system, or environment property), the template value will be reflected in the build configuration. I think it would be more useful for the project level value to override the template value rather than the other way around, unless I am missing something. I'm sure there are cases where it is inconvenient either way, but if project values take priority it is easier to use a single template shared across multiple projects/configurations if the project values take priority. For example, I can define a continuous template that all of my continuous builds are attached to and then override key properties/values on individual projects as needed. Since the template takes priority, I have to go to each config in the project and override the value.