Phase shift by arduinofft is not corrected

If this is the case, then define it as

const uint16_t samples = 2 << 5;

Instead of splitting your complex numbers into two parallel arrays I suggest that you define a structure, like:

struct Complex
{
  float real;
  float imag;
};

or that you use the Complex library.

To compute the real part, as in vReal[i] = int8_t ..., maybe define a function that will take smaller steps and use intermediate variables.

And lastly: where is twoPi defined? Are you sure you got it right?