I think rebel armies can also have an effect on sea trade if they sit on the road between the city and the port.

I had a rebel army parked on my port road and the city was making about -900 a turn. I then attacked them and they ran from my army and were still sitting on the road but not on the section going from the port to the city, city income then jumped to 100 a turn.

I didn't check the trade summary before and after i did this however, (which i regretted after reading this tread) so someone else might want to either confirm or deny what I've just said