Having really weird experience with string concat
+ on const char * increments the pointer. only String has + overloaded as concatenation of the right operand (not left). so "abc" + str + "efg" will not work even if str is String. What will work is String("abc") + str + "efg", but small Strings will fragment the heap memory of the MCU very fast and the sketch will crash.

Print the parts directly to serialSIM800 or use snprintf to build the strings or try CStringBuilder from my StreamLib