VHDL update different parts of large vector (MIG data) from serial data
In general, think parallel/concurrent processing.  Is there anything preventing you from writing each received "data sized to your memory width" before receiving all 64 bytes?  If not, write to the memory location each time you receive each "properly sized data" from the UART.  That way you are only dealing with a single slice of the 512 bits at any given time.  Likely, you are using your memory as a FIFO(?), so it is a simple write and read pointer that is your memory address (relative or absolute, either way).  

If you stop and think about it, in terms of HW, you are already "Storing" all 64 bytes before writing memory anyway... and, to be sure, "storage" can be registers or memory, as you please... so, I think if you stop trying to register 512 bits and then write the slices to memory, and instead store it in memory "on the fly", your design will meet timing, and fit your device more easily.