Integer to enum(byte) with strange casting result

“Your workaround is good, and as I mentioned above, you can still use integers to set as long as you do a manual conversion ((x + 1) * 2).”

It also seems that this method is not working in my case.

I do loop, do the +1 * 2 on index. ToByte, then ToEBlocCategories (which is my enum).

Here is a screenshot of Enum, code that is meant to get all of names of enum and output log at runtime.

http://puu.sh/k0dKb/9b2c122771.png

As you can see, output states:
Armor (which corresponds to 2 in bytes)
Engine (which corresponds to 4 in bytes)
None (which corresponds to 6 in bytes)
None (which corresponds to 8 in bytes)
None (which corresponds to 10 in bytes)

What is bothering me is fact that it works on two first. But not on three others. Just why? x)