generally speaking,they means the same,only slightly difference.you know 不错=no mistake.Doesn't automaticlly mean you are very right,just not wrong. so it's a polite way to say you are not good,but also not very bad.
好means a lot more than 棒. 棒 could use to descibe 体力强,能力大,成绩好,水平高.almost every 棒(as a adj)could be replaced bu 好.