Well the issue is that FRED does all of its validity tests with variables by swapping in the default value into the sexps. Since Alpha 1 doesn't initially have a turret07, it raises a flag, even though you know it will eventually have one.
How about instead of directly referencing Alpha 1's turret07, you have a variable that references a dummy Lilith (which doesn't even have to appear in the mission, the arrival cue could be just set to false) so FRED will be all like "Yeah, this has a turret07, this is okay". Then when you change-ship-class, you change that variable to Alpha 1.
So its like
fire-beam
@Variable('Dummy Lilith')
turret07
That's the best thing I can think of right now.