I agree with everything said above.
Yes, you can only change the family instance dimension parameter values after the instance has been placed.
Yes, you could define different types for different values, and then place the type.
You could create those types on the fly immediately before placing the instance.
In Revit 2015, you can define which family type is placed by PromptForFamilyInstancePlacement.
Where do the width and height etc. come from?
Can you determine them immediately before the call to PromptForFamilyInstancePlacement?
If so, then you could create a new family type with those dimensions on the fly and set that to be the active type right before the call to PromptForFamilyInstancePlacement.
Cheers, Jeremy.