Some observations

1 - the VB code is reading 4 hex characters from locations (x*5 + 1) at a time. This is assuming VB is set to "option base 1"
so, for index 1 it reads from 6, for index 2 it reads from 11 etc
Your PB code is not doing that

2 - the VB code is expecting HEX characters and converts them to a value using the val("&H" ......) operation.
Your PB code is treating the values in the EEPROM as proper word values which they are not