It's not a bug or a mistake but by current design. The task works in 'collection' mode or project mode. You are calling it in project mode which means the task reloads the calling project and uses the properties that it evaluates to detokenise the files.
It loads this file as is and your properties passed on the command line therefore have no affect.
You could switch to 'collection' mode by using the CommandLineValues or ReplacementValues properties. In your case you would do this:
<MSBuild.ExtensionPack.FileSystem.Detokenise TaskAction="Detokenise" TargetFiles="@(FileCollection)" TextEncoding="ASCII" CommandLineValues="$(clv)"/>
msbuild C:\test\install.proj /t:DumpIniFileFromTemplate /P:clv=InstallPackageName=TestMsiService
The issue that you may hit though is that the task does not support running in both modes, so you would loose access to all the properties defined in the proj file. I'll look at improving the task to support running in both modes for the next release.