I just took a look at it in FRED, and I have noticed a few things that don't pertain to your current problem, that could be changed. First of all, unless you've specifically locked the turrets on a ship, you don't need to unlock them... that's done by default, so you can eliminate those events. Secondly, you can name more than one ship in a beam-free-all use, and since all the cruisers in a wing should arrive at the same time, you can name them all in the same event. Just select the "beam-free-all" and right click on it, and select "add data" and add in all the other ships you want to have beam-freed at the same moment. There's also the events with the escort list. You only need to flag them for the escort list in their initial status. They won't show up on the list until they arrive anyway.
There's also the use of goals. From what I can see, you're trying to get the directives to display on the left of the screen, but you're using the ones that are displayed at end of the mission briefing... which are goals. The bonus goals you've got are actually the same ones that you have as part of your secondary goal "destroy all fighters", just set up individually. Just remove them. One way to do it is to set up individual events, one for each wing, which only contains an is-destroyed-delay conditional, referencing each individual wing, then in the directive text box at the bottom, put "Destroy <insert wing name here> wing". That said, with so many hostile wings, plus the enemy destroyers, it would probably be best to do it the way you've done already, minus the use of the bonus goals. In your event "destroy all fighters", instead of using "is-goal-true-delay", use an "is-destroyed-delay" conditional, that references all the enemy wings. You will find that directives won't appear when you try to link them to certain conditionals. is-destroyed-delay and has-arrived-delay are the typical ones to use, though there are a few others that will work for it. Anyway, as I said, you can name several ships and wings in an is-destroyed-delay (and several other conditionals), simply by adding the first ship's name, then right-click on the is-destroyed-delay and select "add data" and keep doing that until you've added in all the wings you want. Also, the use of is-destroyed-delay in an event such as this will cause a small numerical counter to pop up alongside the directive text in mission, indicating how many ships are left to destroy. I also suggest that the secondary goal, also named "destroy all fighters", should use either the same single use of is-destroyed-delay with multiple wings referenced, rather than the use of multiple "and" branches that you have right now, or simply use an "is-event-true-delay" and link to the event we just set up. You should also change the events you've got set up to create "destroy <insert capital ship name here>" directive text, to use is-destroyed-delay rather than is-goal-true-delay. Also, on all three directive text events, you don't need to end the event with "validate-goal", since unless you've specifically marked a goal in the objectives editor as "invalid", they are valid by default. These are only needed if you want a goal to be unknown to the player at the time of the briefing. For example, if a third enemy capital ship entered the mission, and you wanted there to be an objective to destroy it, but no-one knew that it would be there. If you left the goal valid, then it would come up in the objectives list after the mission briefing, which the player shouldn't have any advanced knowledge of. In that instance, you'd check the "objective invalid" box for that goal, then use a "validate-goal" sexp when that ship arrived to make it available for the player to complete.
In another instance when you can add data and shorten or simplify an event, in your "medals", you wanted a medal to become available when all three goals are achieved. You only need to use "and" once. Once you've added in the first two "is-goal-true-delay" instances, then right-click on the "and" and select "add operator" and go from there to add the third "is-goal-true-delay" in.
Also, you could eliminate the events you've got that send the messages upon the destruction of the enemy capital ships, and simply tag the messages on to the events that you're using to create the in-mission directive text, since they already reference those ships' destruction. The only thing is that you'd lose the delay that you have in your existing events. If you DO want to keep the delay between ship destruction and message played, another way to do it is to create an event for each ship and chain each onto the end of the directive events. Just place the event right after the corresponding directive event and select "chained". Note, that the game will sometimes add a directive text when you insert an event after an event that has directive text... just delete it from the new event and go on. Now, since a chained event doesn't necessarily require a conditional, you can go right down to the "when" hook and replace it with "send-message", dispensing with the when>true part. I've also noticed that events "tt" and "tb" are identical. You may want to consider deleting one of them.
In a different line, its generally considered not a good idea to use attack orders for capital ships, even as small as cruisers. Its also not generally a good idea to group capital ships into wings, as it can confuse their responses. It also marginalizes them, as all capital ships should be named. You might want to make the terran attack force into say, a pair of corvettes and two or three cruisers. Have them jump in off the flanks or above of the enemy destroyers then use additional waypoints to have them take a parallel courses. Be advised, that a Deimos is twice as fast as the destroyers, while a Leviathan is a third slower than one. You'll either have to cripple the destroyers by using cap-waypoint-speed to slow them down so that the cruisers can keep pace, and also slow the corvettes to keep pace, or allow the battle to split somewhat. It would require some trial and error to get it right, but you could have the corvettes start off somewhat behind the destroyers, then accelerate by them and stop just near the node, as an attempt to cut them off, while the Leviathans jump in further ahead and then turn once the destroyers pass and go parallel, so that they stay in forward beam range as the destroyers move ahead.
Also, what is the second waypoint path for? I don't see any ships following it. Also, you haven't beam-freed the GVD MILLENIUM, though it does carry beam turrets. If perhaps you intend that its left over from the original HOL, (since you did mention that it's HOL in the briefing), and then intend that it only carries Great-War class weapons, then you might want to change its turret weapons to match those from FS1. Also, if these ARE HOL ships, then they shouldn't be labeled as "GVD", but rather as "HLD".
Unfortunately, I can't figure out anything obvious for the weird AI anomalies you're encountering. Perhaps the use of Attack orders by the cruisers is forcing the destroyers to somehow stay and fight.
Hope some of this helps.
Later!