If every mathematical theorem can be derived from the ZFC axioms, and the ZFC axioms can be derived from symbolic logic (can they? Is that roughly what Principia Mathematica attempts to do?), then why do we still use the ZFC axioms?
Godel's theorem seems to say that a formal system can't prove itself true. But in what sense does this undermine the logicist program? Isn't it still best to use the simplest axioms possible, and the axioms of logic are simpler than the axioms of ZFC?
"[If] every mathematical theorem can be derived from the ZFC axioms ...". Well not so. Yes, we can reconstruct large chunks of familiar maths in ZFC. But even lots of set theorists work with "large cardinal" axioms which are unprovable in ZFC. And e.g. category theorists make assumptions that go beyond what we can construct in ZFC.
"...and the ZFC axioms can be derived from symbolic logic". No, they can't be. ZFC asserts the existence of an infinity of sets, surprise, surprise. The most that standard logic asserts is the existence of at least one object (and perhaps it shouldn't do even that, but let's not worry about that wrinkle). So ZFC can't possibly be derived from symbolic logic alone. It is a formalizable theory which, when formalized, uses a formalized symbolic logic as its deductive apparatus; but the axioms of ZFC are not themselves propositions of logic.
"Is that roughly what Principia Mathematica attempts to do?" How "rough" do we want to be? Principia isn't a set theory: it is a no-class theory that tries to do what set theories do without sets (but with something called propositional functions instead). And Principia, by most reckonings, goes beyond pure logic, by making strong existence assumptions --it has an Axiom of Infinity that tells us that there are infinitely many things (which is not a claim of pure logic by most people's standards, arguably not even by Russell and Whitehead's).
"Godel's theorem seems to say that a formal system can't prove itself true." No it doesn't. The Gödelian theorems don't talk about truth (semantics) but about provability (syntax). The second incompleteness theorem "says" (in a stretched sense) that a suitably strong formal system can't prove that "$0 = 1$" is unprovable in the system.
If you are interested in these foundational matters you need to do some more homework. Try e.g. Marcus Giaquinto's terrific (and terrifically clear) The Search for Certainty which you should find very illuminating about the general issues you touch on.