I've had 3 cars in which the heater would stop working when the radiator coolant level was low.
Check the coolant level. Make sure that it is full.
If it is, find the heater hose that delivers water TO the heater (usually located at the front of the intake manifold). Try to find a place near where the hose passes through the firewall to the heater.
Then find the heater hose that returns water back to the engine (usually at the water pump). Try to find a place where the hose comes out through the firewall.
With the engine warm, feel both hoses. If both hoses are warm, you probably have good coolant flow. It one is hot and one is cold, you don't have any coolant flow.
That if you don't have flow, the problem is probably a vacuum operated coolant shut off valve in or near the heater box.
If you have coolant flow and no heat, it is probably a vacuum operatued air diverter vane located inside the heater box that is not routing the moving air through the heater core.
Can't help you too much with the trunk leak (my '05-S doesn't leak) other than to run the garden hose over the trunk lid, then slowly and carefully open the trunk and examine the rubber trunk edge gasket and see where it is wet on the inside edge.
Good luck.
Tim