I'm eagerly awaiting an answer to your question, although I'm not a UniData user. The forum had a lot of talk about Dynamic files recently. So, I've been reading the UniData documentation in the interest of separation and modulo calculations and overall writing style as compared to Universe documentation.
It looks like UniData has a lot of options when it comes to Dynamic files. So, all I can really say is the blocksize of 512 looks way to small. I would try 4096 for the block size and experimenting with a minimum modulo to avoid hitting any massive overflow conditions. As I'm sure you know, changing anything would require some sort of resize. Hopefully, finding the optimal config for the file will keep it fast, out of overflow, and splitting and merging properly.
Below is documentation that I find pretty interesting.
The UniData_CommandsRefGuide_V737.pdf on pages 1-119 through 1-121 look like a good place to start under normal circumstances.
The UniData_WindowsAdminGuide_V737.pdf on page 11-12, Dynamic Files and Disk Space, states:
"However, if you remove all records from a dynamic file by using a select list, the file might not return to its minimum modulo. Depending on the order in which UniData removes records, some groups resulting from earlier splits might not become eligible for merging, even though they do not contain any records."
The UniData_WindowsAdminGuide_V737.pdf on page page A-8 has info on the GRP_FREE_BLK config setting:
"Pertains to dynamic files only. The number of free blocks that are kept in the free block list at the group level. If more blocks are freed, they are kept at the file level."
Good Luck on your UniData journey,