There's a bus leaves Charleroi at 6.30 and goes via Luxembourg arriving in Metz at about 11.30.
Details are in the first post in this thread.
Train takes about the same time. Again, via Lux. Think you have to change at Lux.
Because of the 4 hour journey, I decided to drive. Hope to be in Metz by 8 pm