just to update this, it seems to work now. the higher i put the baud rate the better it worked until 19200 when it seems to work 100%
so i consider this fixed, i am just curious as to why it didn't work before? hardware serial works fine at 9600 so what is it about software serial that means it doesn't work at lower speeds?