Why? It'd be better to understand why you have that abnormal FF value, don't you think? I don't like "mysterious" things without explanation, and when these things happen I try to understand what it is anyway.
Do you think it's an error in the EEPROM? Or in the library you're using? Or maybe it's kinda writing problem?
The dump you showed is related to myMem.get(), but how did you do myMem.put()? Can you show us both?
And what happens if you change the struct by adding a byte between the two and read it back? Something like this:
typedef struct
{
uint8_t version; // 1 byte
uint8_t reserved[3]; // 3 Byte padding
bool cal_A[4]; // 4 Byte
byte dummy; // jump the "extra" 0xFF?
bool cal_B[4]; // 4 Byte
float korr_B[4][8]; // 128 Byte
float korr_A[4][8]; // 128 Byte
uint16_t reserved2; // 2 Byte
uint16_t crc; // 2 Byte
} calstruct;
PS: the values I read from your picture tell me the second array values are 2.1 not 2.2... 2.1 is "40 06 66 66" while 2.2 is "40 0C CC CD".