I'm not sure exactly what's going on--the errors seem pretty generic--but perhaps the easiest solution would be to write a boot script that would automatically reinstall the Windows driver into ndiswrapper each time you boot your computer, since you say that doing that manually is the trick to getting the connection working.
To test that that solution would actually work, please try running these commands (before doing anything else) after the next reboot where the wired connection is not working:
(note that you have to give the correct path to the location of the b44win.inf file). After that, hopefully the wired connection will work.
sudo rmmod ndiswrapper
sudo ndiswrapper -r b44win
sudo ndiswrapper -i /path/to/b44win.inf
sudo modprobe ndiswrapper
If that doesn't work, please post the output of:
By the way, are you sure that you really need ndiswrapper in order to drive your ethernet card? I know it's possible to use ndiswrapper for ethernet, but I've never heard of anyone actually doing so, as virtually every ethernet card in the world should be supported by a native driver (b44 in your case, I think)--although perhaps your problem results from blacklisting issues with b44, which you probably needed to add to the blacklist in order to allow ndiswrapper (and not b43/ssb) to control your wireless card, which also has a Broadcom chip.
lshw -C Network