ADS7771 Decimation rate issues

Hey I am trying to adjust the decimation rate on my ADS7771 to output at 512sps, but for some reason when I set it accordingly it outputs data at 512sps but each sample is copied once. Here are the relevant settings that I know of. I don't totally understand the datasheet on this, does anyone know what the issue could be? If I set the parameter to rate for 1kHz (by the below table) I get duplicates still and one non-duplicate, and various other behaviors at different settings. From what I read if it's reading too slow it can corrupt the previous sample but my SPI settings should be plenty fast. Any help would be greatly appreciated.


      init_param.pwr_mode = AD7779_HIGH_RES;
//  //    init_param.dec_rate_int = 0xfff;//hr 0.5001221 kHz
      init_param.dec_rate_int = 0xfa0;//hr 0.512 kHz
//      init_param.dec_rate_int = 0xc80;//hr 0.640 kHz
  //    init_param.dec_rate_int = 0xa00;//hr 0.800 kHz
//      init_param.dec_rate_int = 0x800;//hr 1 kHz
//      init_param.dec_rate_int = 0x400;//hr 2 kHz
//      init_param.dec_rate_int = 0x200;//hr 4 kHz
//      init_param.dec_rate_int = 0x100;//hr 8 kHz
//      init_param.dec_rate_int = 0x80;//hr 16 kHz
//          init_param.dec_rate_int = 0x40;//hr 32 kHz
//          init_param.dec_rate_int = 0x20;//hr 64 kHz
//          init_param.dec_rate_int = 0x10;//hr 128 kHz

//      init_param.pwr_mode = AD7779_LOW_PWR;
//      init_param.dec_rate_int = 0xfff;//lp 0.25006105 kHz
  //    init_param.dec_rate_int = 0xfa0;//lp 0.256 kHz
  //    init_param.dec_rate_int = 0xc80;//lp 0.320 kHz
  //    init_param.dec_rate_int = 0xa00;//lp 0.400 kHz
  //    init_param.dec_rate_int = 0x7d0;//lp 0.512 kHz
  //    init_param.dec_rate_int = 0x800;//lp 0.500 kHz
  //    init_param.dec_rate_int = 0x400;//lp 1 kHz
  //    init_param.dec_rate_int = 0x200;//lp 2 kHz
  //    init_param.dec_rate_int = 0x100;//lp 4 kHz
  //    init_param.dec_rate_int = 0x80;//lp 8 kHz
  //    init_param.dec_rate_int = 0x40;//lp 16 kHz

  //    init_param.dec_rate_int = 0x20;//lp 64 kHz

      init_param.dec_rate_dec = 0;
  //    init_param.dec_rate_dec = 0xfff;

      init_param.ref_type = AD7779_EXT_REF;
//      init_param.ref_type = AD7779_INT_REF;

  //    init_param.pwr_mode = AD7779_HIGH_RES;
  //    init_param.pwr_mode = AD7779_LOW_PWR;

      init_param.dclk_div = AD7779_DCLK_DIV_1;
//      init_param.dclk_div = AD7779_DCLK_DIV_2;
//      init_param.dclk_div = AD7779_DCLK_DIV_128;