Issues in getting FFT to work on Arduino using my own code

No need to guess whether the math is right. Feed the FFT with a data array containing a calculated sine wave and check whether the power spectrum is what you expect.

Note: this is not the correct way to time your samples, as it does not correctly handle counter overflow (after about 70 minutes of run time):

   while(micros() < (microseconds + sampling_period_us)){}

This does:

   while(micros() - microseconds < sampling_period_us){}