Just wired a new heater like this and the GFCI pops when the heater comes on. Can someone explain to me why this is happening?
Everything downstream of the GFCI has to be connected to both the Hot and Neutral from the Load side of the GFCI. The way you've wired it, when the heater kicks on, current is flowing from the Load side of the GFCI through the heater and back to the panel without returning through the GFCI's neutral connection, so the GFCI sees an imbalance and trips.
I don't think there's any way to use a 120V outlet GFCI to protect a 240V load, to do that, you'd need an appropriately sized double pole GFCI breaker in the panel.
As far as I know, fixed loads like heaters need to be on a dedicated circuit, and it is not permitted to split 240V legs from a single circuit to feed both a fixed 240V appliance and 120V outlets (you can use 2 legs and a neutral in a multiwire branch circuit to feed 120V outlets, but I don't think that same circuit can be used to feed a fixed 240V appliance).
For code compliance (and safety), you should remove the outlets from your circuit and only drive the 240VAC heater from it.
The code doesn't allow 240v circuits to have 120v loads on them. For instance putting a receptacle on a water heater or Air Conditioning circuit is not allowed. The heater needs to be moved to a separate two pole breaker sized at 125% of the heater load.
GFCI protection is not required for a space heater.