sim900 only works on certain sketches; used to work

I have a seedstudio mini sim900.

It works on several libraries: gsm.h, sim900.h, serialgsm.h etc.

The problem: I can only get it to work on sim900.h library now - even though it used to work on the previous libraries, and I haven’t changed anything hardware wise. I tried to turn the GSM into a sleep mode (unsuccessfully) and thought it might have messed up the sim900.

Here’s the code that works:

#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"

//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to send and receive SMS.

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup() 
{
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
    //Enable this two lines if you want to send an SMS.
    if (sms.SendSMS("+mynumber", "test"))
      Serial.println("\nSMS sent OK");
  }

};

void loop() 
{
  if(started){
    //Read if there are messages on SIM card and print them.
    if(gsm.readSMS(smsbuffer, 160, n, 20))
    {
      Serial.println(n);
      Serial.println(smsbuffer);
    }
    delay(1000);
    Serial.println("AT+&F[0]");
   Serial.println("AT+&F[<0>]");
  }
};

Here’s the code that USED To work perfectly fine until it randomly stopped working

#include <SerialGSM.h>
#include <SoftwareSerial.h>
SerialGSM cell(2,3);
void setup(){  
 Serial.begin(9600); 
 cell.begin(9600);
  cell.Verbose(true);
  cell.Boot(); 
  cell.FwdSMS2Serial();
  cell.Rcpt("+972123456789");
  cell.Message("hello world");
  cell.SendSMS();
}


void loop(){
  if (cell.ReceiveSMS()){
    Serial.println(cell.Message());
    cell.DeleteAllSMS();
  }

}

I don’t understand. I also tried to do a Serial.println(“AT&F[0]”) for a factory reset, based on sim900 AT Commands the factory defined setting, but that didn’t work or do anything.

I really don’t comprehend how it was working, and now I can only receive SMS using the sim900 library - when 3 different libraries used to work. Any ideas? I was going to look into my connections - but it still works fine for the one library so figured it was either working or not going to work if it was a hardware problem.