The problem with doing missing value imputation for PCA is that if the imputation does not take into account the correlation between the variables, then essentially the imputation is going to alter the fitted PCA model. Your code does take this partially into account using FCS LOGISTIC for two variables, but does not take this into account for the correlations between the other variables (like correlation between x2 and x3).
So, I don't really know how to do this using PROC MI. My suggestion is to use PROC PLS where you set the option MISSING=EM (an expectation maximization algorithm is used to replace missing values). To use PROC PLS to get PCA results, the trick is that you have to specify that the x-variables in the PLS model are identical to the y-variables in the PLS model.
But I don't know how well this will work on your data. In addition, you have lots of missing data here, over 20%, and so I would worry that the amount of missing is a problem.
... View more