I read somewhere, at some stage possibly in another life that the SM5100B can draw more power than the arduino can supply maybe thats why it drops out, just a thought, I can't even get my SM5100B to communicate, I think its busted....
taken from sparkfun /commerce/product_info.php?products_id=9533
# Power Consumption:
* Off mode: <100uA
* Sleep mode: <2.0mA
* Idle mode: <7.0mA (average)
* Communication mode: 350 mA (average,GSM)
* Communication mode: 2A (Typical peak during TX slot,GSM)
A normal arduino can only deliver about 100mA so when it tops is needs about 20 times more than the maximum levels possible.
I would recommend adding something like 3 NiMh batterys as a power buffer.
Then you simply spreed the power load out by charging the batteries before starting the unit.