You're using MUIV_List_ConstructHook_String and MUIV_List_DestructHook_String, but you are not inserting a single string, you're passing a structure.
So, you need to add proper construct hook which will read your "struct FileAreaEntry", allocate a new "struct FileAreaEntry" and space to hold the string, then copy the strings. Ensure you free everything in the destruct hook.