I think the best candidate for the bug is in change_ship_type(), it is called by the mission select ui code to change the ship type, Goober modifyed this code so it could be used in mission, specificly:
	// set the correct hull strength
	if (Fred_running) {
		objp->hull_strength = 100.0f;
	} else {
		// commented by Goober5000: we want to maintain hull strength
		//objp->hull_strength = sip->initial_hull_strength;
	}
	// set the correct shields strength
	if (Fred_running) {
		objp->shields[0] = 100.0f;
	} else {
		// Goober5000 - again, we want to maintain shield strength
		//set_shield_strength(objp, sip->shields);
	}
I think the best thing to do would be to give this function a flag of some sort for reseting these values with a defalt value that leaves it the way it was
as for other bugs I have fixed a number of them in the fighter beam code, I added bank specific compatabilities, and a field of fire tag, and shield pierceing flag.
are we going to get a fred3.5 as well?
and what are all the things that fred now needs to take care of?(ex; nameplates)
and when is fred going to get merged back into FSO?