Iam using Tip 31C as a switch, but it always on
In your circuit, the TIP31C is an NPN and you use correctly as a low-side switch. 

However this induces a big issue in your circuit: you are disconnecting the GND to part of your digital system, which is a very bad idea.

This could result in several issues:


When at least one pin of your MCU outputs a low voltage, then the built-in protection diodes of the RTC/SIM800L I/O pins will conduct, and these two latter devices will be actually powered through those protection diodes.
latch-up might also occur.


In fact, each input is protected by the diodes connected as shown in the picture below:



If the GND is disconnected, and the input is at 0V, the bottom diode will conduct (and power the rest of the system! - possibly being damaged too). Similarly, if VDD is disconnected, and a high level input is applied, then the top diode will conduct.

I would use a logic-level pMOSFET, that switches the VCC (instead of GND).







simulate this circuit &ndash; Schematic created using CircuitLab

When you want to power up your systems, put a logic 0 to the gate of the pMOSFET (GPIO=0). When you want to power-down your system, use the following procedure:


put a logic level 1 to the GPIO connected to the gate.
Configure all the PINS connected to the RTC and SIM800L as either input without pull-up (beware of noise coupling! Put a pull down resistors if possible!). OR configure all such PINS as output, with a 0 logic value. This will prevent your arduino from powering your system through the protection diodes


tl;dr

To answer your question: 


A BJT can fail in all the possible ways (open/short), depending on what happened. 
But probably your TIP31C is still fine, power came to the RTC through its built-in protection diodes and some output of the arduino, which was at 0V.
Use a high-side switch (e.g. a pMOSFET).