I have used these. The inputs are read by portB and the outputs are open collectors driven by PortC. Read portB for the inputs and set PortC for your outputs.

Seems very simple to me unless I am missing something.

Steve