I'm not exactly sure all of what you are trying to ask, but I'll briefly explain the difference between the FFT (DFT) and the PSD.
The PSD is the fourier transform of a signal's autocorrelation function (or in discrete world, autocorrelation sequence). It gives an estimate of the power of the frequency content contained in the signal. You can estimate the PSD of a signal from the DFT by:
Y = fft(x); % Calculate the FFT
Py = abs(Y).^2/length(Y); % Estimate the PSD
Py2 = Y.*conj(Y)/length(Y); % Alternate way to estimate the PSD
Now, I'm not sure what you are trying to do by finding the amplitude of the DFT from the PSD. If you are looking for only the amplitude, I suppose you could estimate the amplitude by:
Y_est = sqrt(Py*length(Y)); % Estimate of the FFT amplitude
However, the PSD is a real valued function, whereas, generally speaking, the DFT is a complex valued function. There is no way to extract a complex valued DFT from a PSD since the complex magnitude is non-linear. Since there is no phase information, there is no way to go back to the complex-valued DFT from a PSD.

