Hello
I do not have experience with the SIM800L but I do have experience in using the SPI with different equipment simultaneously. What I usually do is generate a variable as the flag of use of each of the equipments, for example a TFT, an ADC module and a DAC module. To each equipment I assign a number so that before starting the use of the SPI bus I verify that the Flag Value is = 0, at that moment I assign the flag to the value of the equipment that is using the SPI bus, for example to value 1 if you are using the TFT. At the end of the routine, I load the value ZERO to the variable so that another device can use it. Before each routine that uses the SPI bus I check that the flag is at ZERO and thus managed to govern many devices with the same lines of the SPI bus, of course it is that each device uses a unique CS line
A little code can solve the problem.