I can beat the naval battles, no problem. But I can't for the life of my troops beat the land battle without incurring at least 450 casualties (I play on ultra unit size). So what am I doing wrong?

I normally send my light infantry to deal with the closest canon on the NE stream. Then I send my 2 6 pounders NE, with 2 line infantry to attempt to silence the other enemy battery. The rest of my troops I send to the SW stream crossing, and just deal with the enemy infantry as they come. If the AI is stupid and sends a lone rifle unit, I mop it up with cavalry, otherwise it's a slug-fest with my line infantry. I always win, but not without sustaining heavy losses.

What is the best way to silence their artillery? It is SO powerful and accurate, especially with canister shot...

In RTW and M2TW I usually win battles with no more than 8-16% casualties, my current pace of 40-60% is completely unacceptable...