A bath bomb is bicarbonate of soda and citric acid held together in a compressed shape. Dry, nothing happens. In water the two react, releasing carbon dioxide — that is the fizz, and it is the same reaction as baking soda and vinegar, run slowly.
Why yours did not fizz
Almost always humidity. A bath bomb stored in a bathroom is sitting in exactly the conditions that set the reaction going slowly — the ambient moisture lets the bicarb and acid meet at the surface, and the reaction spends itself over weeks without you seeing anything.
Keep them sealed, out of the bathroom, and they hold for a year or more. In an open dish next to a shower, expect a couple of months.
The staining question
Colour in a bath bomb comes from either dye or mica. Dye dissolves and rinses away. Mica does not dissolve — it is a mineral pigment, it stays suspended, and it settles on the bath as a film that needs wiping rather than rinsing.
Neither permanently stains modern acrylic or enamel, but strongly coloured bombs left to sit in a bath overnight can mark grout and older, more porous enamel. Rinse the bath afterwards rather than leaving it, and heavily glittered bombs are worth avoiding entirely if you have a plastic bath.
Oils make the bath slippery
Most bath bombs contain a butter or oil — shea, cocoa, sweet almond — which is the part that leaves skin soft and also the part that makes the bath genuinely slippery afterwards. Worth knowing before an elderly relative uses one.
What the crystal in a crystal bath bomb is
A tumbled stone, pressed into the mix, which appears as the bomb dissolves. It is a nice surprise and it is worth checking what stone it is: the reasonable ones use quartz-family stones, which are inert. Selenite would dissolve, malachite should not be in bathwater at all, and pyrite will rust. Any well-made crystal bath bomb uses rose quartz, amethyst or clear quartz for exactly this reason.
The stone will be at the bottom of the bath. Retrieve it before pulling the plug — they are the right size to fit down a plughole.