It's fixed! The problem was that the timing between pushing bits towards the 74hc595 and clockin them in. Thanks for pushing me in the right direction! I'll include my routine here, for others to freely use and ofcourse, make it better!
Sendportc:
SendportcSetup:
ldi temp,16
sts shiftcount,temp
lds temp,portcout ;keep CS low
cbr temp,CS ;
sts portcout,temp ;
out portc,temp
lds temp,shiftctrl ;keep RESET high
sbr temp,sidreset ;
sts shiftctrl,temp ;
sendportlus:
lds temp,portcout
cbr temp,RCLK ;dont show outputs 74hc595
cbr temp,SCLK ;clockbit low
sts portcout,temp
out portc,temp
sendcrotate:
lds temp,shiftctrl
clc
ror temp ;shiftctrl to right
sts shiftctrl,temp
lds temp,shiftdata
ror temp ;shiftdata to right
sts shiftdata,temp
brcs sendwelcarry ;carry set?
sendgeencarry:
lds temp,portcout
cbr temp,serdat ;put 0 in serdat
sts portcout,temp
rjmp sendport
sendwelcarry:
lds temp,portcout
sbr temp,serdat ;put 1 in serdat
sts portcout,temp
sendport:
lds temp,portcout
out portc,temp ;out with the serdat bit
ldi temp,0x20 ;delay
senddelay: ;
dec temp ;
brne senddelay ;
lds temp,portcout
sbr temp,sclk ;clockin high
sts portcout,temp
out portc,temp
lds temp,portcout
cbr temp,sclk ;clockin low
sts portcout,temp
out portc,temp
lds temp,shiftcount ;all 16 bits done?
dec temp
sts shiftcount,temp
brne sendportlus ;nope
SendportcShow:
lds temp,portcout
sbr temp,CS ;CS high
sts portcout,temp
out portc,temp
lds temp,portcout ;RCLK high
sbr temp,RCLK
sts portcout,temp
out portc,temp
lds temp,portcout ;RCLK low
cbr temp,RCLK
sts portcout,temp
out portc,temp
lds temp,portcout
cbr temp,CS ;CS low
sts portcout,temp
out portc,temp
SendPortcEnd:
ret