With all the experience and familiarity I have now working with 1.0, it's protocol, and reverse engineering... I took another look at the inventory packets. These were one of the first things I tackled when I first started and you can see my post here and here. Anyway I figured out that I got a lot of it wrong and overcomplicated things. Simply put, the game has 3 types of inventory body packets (items, equipment index, and an unknown type which I am not sure what it's used for), that come in entry sizes of 1, 8, 16, 32, and 64. Yes, you can set 64 equipment indices at once even though there are only 20 or so. I guess SE was future proofing?
The opcodes are:

0x0146	Inventory Chunk Start
0x0147	Inventory Chunk End
0x0148	Inventory List (x01)
0x0149	Inventory List (x08, variable)
0x014A	Inventory List (x16)
0x014B	Inventory List (x32)
0x014C	Inventory List (x64)
0x014D	Set Equipment Id (x01)
0x014E	Set Equipment Id (x08, variable)
0x014F	Set Equipment Id (x16)
0x0150	Set Equipment Id (x32)
0x0151	Set Equipment Id (x64)
0x0152	Unknown (x01)
0x0153	Unknown (x08, variable)
0x0154	Unknown (x16)
0x0155	Unknown (x32)
0x0156	Unknown (x64)

0x016D	Inventory Start
0x016E	Inventory End

and how it works is:

[16D]
	[146 (Capacity, Code)]
		[14B]
		[14B]
		[14A]
	[147]
	[146 (Capacity, Code)]
		[149]
	[147]
[16E]

In this case, two sets of item types (say inventory and key items) are being changed, with the first one changing 32 + 32 + 16ish (can be less for the last one), while the second one is doing just up to 8.