I have an Arduino Pro Mini, 3v3, 8Mhz. I have in the past successfully programmed it over the serial line. I have two others, I can program them over the serial line. I can program the first one using SPI. Once programmed, I can communicate both ways over its serial lines. So I'm certain that the serial port is good, the board is good, and my connections are good.
I suspect it may be a corrupt bootloader. I have burned the bootloader using IDE. It still does the same thing.
What else could it be?