AD5933 Much Slower than expected

I've been attempting to mimic a project with Analog Digital's Bioimpedence analyzer, AD5933 (Datasheet), specifically this one, and have been running into issues on increasing the speed of the frequency sweep. In the paper mentioned, they say that they could get a single point parsed in 3 ms, which led to a frame rate of 10 frames (sweeping 28 points per frame), while I can manage around 90ms per point (for a frame rate of 0.2 fps over 64 points).

My code is modified from an Instructables. For some reason, the part where the Status register is set to 2 (which means there is valid data in the chip), takes usually 30-50 ms.
(The code is too long to fit in this post, so it'll be in a comment. )

1: 25096.00
2: 27900.00
2.1: 33724.00
2.1: 39572.00
2.1: 45412.00
2.1: 51256.00
2.1: 57104.00
2.1: 62944.00
2.1: 68792.00
2.1: 74644.00
2.1: 80488.00
3: 90012.00
 Resistance: -106, Reactance: 301, Impedence: 37267.40
4: 97448.00
2: 100260.00
2.1: 106132.00
2.1: 112020.00
2.1: 117912.00
2.1: 123808.00
2.1: 129712.00
2.1: 135600.00
2.1: 141468.00
2.1: 147340.00
2.1: 153212.00
3: 162772.00
 Resistance: -146, Reactance: 418, Impedence: 26873.24
4: 166912.00
Last: 170948.00

I know the problem is probably not with the chip, because I swapped them out to the same effect. Does anyone have any idea what the issue might be? I haven't been able to find anything useful online, so any help would be greatly appreciated :D.