Well you can't fix the problem with how Wood was handled without first addressing Buffy's behavior towards Spike. She should've been wary of him or maybe supportive but more distant, rather than taking personal responsibility for him and letting him stay in her basement and all that nonsense. You could almost swap the way Buffy treats Spike with the way she treats Faith, and it would fix most of what makes her frustrating and unsympathetic in S7 (I'm talking about levels of trust, respect and forgiveness, not romantic potential).
So, once Buffy is handling the Spike situation how she actually would have if so many writers hadn't been Team Spike, the stage is set for Wood. Buffy should've been far more supportive of Wood's hatred and desire for revenge. Instead of telling him she'd let Spike kill him if he did that again, she should've told him that even though she understands, he can't punish the soul for what the demon did. Neither of them can.