I think your're in limp mode. Engine does that when it's not happy about something. I think the heater is a separate issue. You could try disconnecting the battery for 15 minutes, this used to be a way of fooling it. Have you checked all your hoses are ok? Sorry not much help. I'm on three sites and no one, on any of them has any real answers with regards to limp mode as it can be one of several unrelated things. What have you tried so far?