I've got this now:

I used Derision's packet as a start since his was a bit easier to read than mine. The one I wrote still has sequence # and size on it so it can get a little hard to read esp when you're reading a lot of hex etc etc.
Something in the item header if not set correctly makes the item not show up which was what was throwing me off.
Right now item is like this:
Code:
uint32 Stacksize
uint32 Some Zero Value
uint32 Slot
uint32 Somevalue, prob price as that's what it is in other
uint32 merchant_slot or 1
uint32 some zero value
uint32 unique identifier
uint32 SomeValue prolly nodropinst
uint32 SomeValue prolly potion or item type
uint32 some value 0xffffffff or 0x00000000
uint32 some zero value x5
3 bytes of 0x00 usually sometimes the last byte is 0x01, all bags seem to have the last byte as 0x01
c-string name
c-string lore
c-string idfile
uint32 itemid
Obv everything's not the same as middle of 2008 client but it was a bit closer than the current client.