The impact on the poor is easy to fix: prebate everyone an amount of money equal to the poverty level energy consumption.  It cancels the income effect while preserving the incentive to cut back on any marginal unit of CO2.