Mesh detach when moving (updated)

I’ve rigged, weight painted and used wiggle bone.
The problem is that the teeth won’t keep being attached to the mouth correctly. They either sink in or detach from the main mesh when I move it.

Edit: this is how I’ve weight painted it. The teeth bones are parented to the mouth bones. The teeth are only weighted to their bones.

Are the small bones at teeth area for the teeth? Are they parented correctly? Does the mouth have a different weight painting than the teeth? Do the teeth have weights for other bones that they are not meant to follow? What bones are you using wiggle bones for?

The smaller bones are the “teeth bones” yes. They are parented to the “mouth bones”.
The teeth have only their respective bones WP, I’ve deleted the other Vertex Groups.
It’s a puppet, so I figured having a bit of jiggle would add to the character.

I’ll add more screenshots later.

Judging by the screenshot, it looks like your weights aren’t normalized . Normalize all your weights then check Auto normalize if you need to keep editing.

The teeth should follow a similar weight gradient to the lips/jaws. If the lips are a little orange towards the edge then the teeth on the edge should also be orange.

Id worry about wiggle bones and stuff last.

Indeed the weights are not normalized, it causes the jaws to move less than the teeth, because the jaws have about 50% weight on the head bone too. You could also after normalizing delete all vertex groups from the teeth and transfer weights from the jaws mesh to them. It could give the model more of the puppet look, if the jaws are deforming bendily, so the teeth would too. I don’t think you even need separate teeth bones for this model, unless you need to move the teeth independently from the jaws.