Atmega328P-PU alternatives if more memory is needed

I've now been trying for over a week to work with a genuine FTDI Friend to upload sketches to my breadboard Atmega1284P-PU.

I have to say the FTDI Friend is performing quite poorly. Only about one out of eight to ten attempted uploads is successful, all others quit in mid-upload, and I either get a "protocol error" message or "programmer is not responding".

Here's my setup:

FTDI Friend --- > Atmega1284P-PU

GND --- GND
Vcc --- Vcc
TX --- RXD0 (pin 14)
RX - TXD0 (pin 15)
RTS --- 0.1 uF cap --- RTS (pin 9)

RTS (pin 9) on the Atmega is pulled up to Vcc using a 10K resistor.

Also, (at the moment), a 100 uF cap across Vcc and GND. I have tried caps of different values, it had no effect.

I have checked the wires many times over, and I've also made sure the correct bootloader is on it (I burned it using Nick Gammon's programmer sketch).

I'm really kind of at my wits end here. This is seriously slowing down progress on my CarDuino project, because it means that up to half an hour can pass between successful uploads, even if I've only changed one line of code.

I can half understand if a four-dollar programming device from China with a fake FTDI chip on it won't upload sketches at all. But I paid over $20 for the FTDI Friend, and so far, due to the "flaky" uploads, it has been a big disappointment.

Here's the verbose output I get:

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM20
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega1284P
         Chip Erase delay              : 55000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.5
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% -0.00s

avrdude: Device signature = 0x1e9705
avrdude: reading input file "C:\Users\darkmind\AppData\Local\Temp\build97f72ef5debfac14b77c00792f51d20d.tmp/HeadUnit.ino.hex"
avrdude: writing flash (29892 bytes):

Writing | ##################################
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x62
avrdude: stk500_recv(): programmer is not responding
The selected serial port avrdude: stk500_recv(): programmer is not responding
is not available or the board is not connected

I've tried reinstalling the FTDI drivers many times, which had no effect on the problem. I've also tried various different COM port setting. Nothing seems to work.