Извините, это немного сбивает с толку:
Вы хотите сказать, что FileX импортирует FileA, а FileY импортирует FileA. FileX устанавливает свойство P в FileX, но FileY читает его? Если между X & Y нет никакой связи, то единственный способ сделать это - использовать тот факт, что свойства в MSBUILD пересекаются с переменными среды. Так что, возможно, звонит
<exec ... setx.exe Propertyname SomeValue.... /> in fileA and the $(Propertyname) in FileB