Since I also got a bunch of the 74HC164 since last time, I decided to give those a go. But it was a no-go on both my displays.
However, in 3-wire mode they worked. So the problem is probably the 74HC not managing the quick'n'dirty diode-resistor AND gate for the enable signal.
But then again, it seems Mouse above here made it work with the 74HC164 in 2-wire mode, so I'm not really sure. Also you got it to work with the HC595.
Could be experimenting more with the series R resistor solves it. Or, of course, have an actual factual digital AND gate
But that would increase complexity a bit.
I've tried to look up the capabilities of the 74LS164 and 74HC164, but it's not always easy comparing them when datasheets don't have the same names or tables.
For the 74LS164, datasheet says, under "recommended operating conditions"
HIGH level output current: -0.4 mA (max)
LOW level output current: 8 mA (max)
Whereas the datasheetsfor the 74HC164 says, under "Absolute maximum ratings":
DC output current, per pin: +/- 25 mA
I find that pretty puzzling, seems like the HC family IC's can sink and source more current than the LS family. Maybe my assumption above is wrong about it not being able to work with the diode-resistor AND gate. It would seem it should handle it pretty well (4.3-ish volt / 1k= 4.3-ish mA).
Sounds interesting! I've never worked with I2C yet though, so I'm not sure how exactly that works or how complicated it is to set up. Also I'm wondering about the speed of an I2C bus and how well the bandwith is spent communicating about wating for a busy-flag is. As I understand it, it can be quite a few devices on an I2C bus? (This might not be a problem though, I'm just thinking out loud here).
May I suggest googlecode http://code.google.com/intl/nb-US/projecthosting/
to host your project?