I ran your test using VC 2.2 update 1 and it worked correctly.
I added some display statements after the property sets to show the current values and it displayed 1, 2, 3 as it should have:
set testObject::TPTypeString to "1"
set testObject::TPString to "2".
set testObject::TPMixed to "3".
display testObject::TPTypeString
display testObject::TPString
display testObject::TPMixed
displayed:
1
2
3
Thanks