As far as buffer size goes, the compiler will give you an error if your buffer is too large to fit in SRAM.
This line might be causing you problems:
while(1u != SPIS_GetRxBufferSize()) // wait till byte is recived
If you're running the SPI bus at high speeds, RxBufferSize could skip from zero to 2 before the polling loop has a chance to check that register. It would be safer to use "while (size() == 0)".
Can you please post your complete project, so that we all can have a look at all of your settings. To do so, use
Creator->File->Create Workspace Bundle (minimal)
and attach the resulting file.
As I see, your variable "i" is not incremented.