I think we would all like to believe that anyone knowing about a crime would step forward immediately and tell LE what they know, but sadly, many times it doesn't happen like that. I think the reasons, although nonsensical to me, may be to protect themselves, by believing because if they were there, they too may be punished. Plus kinfolk seem to protect kinfolk as long as they can.
I have no doubt at the time if Joe is the killer that he threatened both of them. That is what criminals do, they threaten the ones that knows their secret by telling them if they tell, because they were there, they will go down with the actual suspect. Nether Misty or Tommy are the brightest crayons in the box and I think they believed Joe. And if he made Tommy help him.......well there ya go..........now Joe has him involved. I do believe no matter how dysfunctional Misty and Tommy are they love each other so to protect themselves, it worked for Joe, until both of them began sitting in jail.
I believe they both were also afraid to come forth beforehand while Ron was out and about. No way was Misty or Tommy going to admit then that they knew what had happened to Haleigh, and, that they were right there when it happened, but once he was incarcerated, then they began to talk, which isn't an uncommon occurrence.
In the James Sullivan trial which happened 19 years later after he hired a hit man to murder his wife, the key witness came forward after 10 years of silence. It took the DA 7 years after then to get him back in the US. The reason she finally told what she had known for years is her hit man boyfriend was incarcerated on other charges. So it does not surprise me it took this long for Tommy and Misty to tell what happened. I think they feared Joe, LE and Ron at the time.