is this Debian ? Just wondering because I run Debian and have had similar issues. Instead, I used route add, and put it in an init script. route add etc would not work from within interfaces. I am not sure why.
I made an upstart script that restarts networking service on iface usb0 up. I found that some program is resetting the usb0 interface at start up after the interface usb0 up.