Send: The library was not waiting till the transmit is complete resulting in a second call to SPI_Send clearing the previous call.
Transmit: This call was going further and disabled the SPI interface before anything was able to transmit. This was due to the fact that the num--; was placed wrong and after putting everything into the transmit queue there was no wait to retrieve everything from the receive queue.
As the code for the poll timeout was weird and the default timeout was not set anyway. We could think about rewriting this code later though (but I think it should only be necessary if we are an SPI client)