If you tried to program the Baby Orangutan without power it should not have damaged it because the programmer can detect whether the target device has power or not, and it will not attempt to enter programming mode if there is no power.
I think your problem is with the -B argument, which sets the programmer’s ISP frequency.
The way avrdude works is that if you don’t specify the -B argument, it won’t change the frequency, so the programmer will just use whatever frequency it was last set to. This would have worked for you because the USB AVR programmer’s default ISP frequency is 200 kHz, which works fine for Baby Orangutans.
When you ran “avrdude -B 1000 …”, avrdude set the programmer to the slowest possible frequency, 1.5 kHz. This might be causing your problem. The frequency is stored in persistent memory, so you can’t just unpower the programmer to fix it. You should try running this command, which will set the frequency to 200 kHz and erase your mega328:
avrdude -B 3 -c avrisp2 -p m328p -P /dev/ttyACM0 -e
After you run this command, subsequent commands should work without the -B argument, indefinitely.
We usually don’t supply the -B argument. But if you want to do it, then here are valid values which should all work for you: 1 corresponds to 1500 kHz, 2 corresponds to 750 kHz, and 3 corresponds to 200 kHz. The higher the frequency, the faster your Baby Orangutan will program. Unfortunately, the highest frequency (2000 kHz) is not available in avrdude because it considers 0 to be an invalid argument.
I’m not sure what the “-i” argument to avrdude is, but it is not needed so I recommend not using it.