A solução que encontrei foi adicionar todas as entradas manualmente. Escreverei aqui um pequeno tutorial para caso alguém passe pela mesma situação:
Em /etc/grub.d/ existem vários arquivos, como 00_header, 10_linux e outros. Esses arquivos são scripts executados pelo grub-mkconfig, e os números no início do nome definem a ordem em que eles são executados. Como números menores são executados primeiro, as entradas geradas por eles normalmente aparecem mais acima no menu do GRUB.
Eu fiz uma cópia do arquivo 40_custom para a mesma pasta e renomeei para 06_custom. Escolhi esse nome porque queria que minhas entradas personalizadas aparecessem no topo do menu do GRUB.
Depois disso, editei o arquivo 06_custom usando o nano (mas qualquer editor de texto serve). Adicionei todas as minhas entradas de UKI e então regenerei a configuração do GRUB:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Depois disso, todas as entradas apareceram com os nomes personalizados e funcionando corretamente.
Porém, algumas entradas antigas geradas automaticamente pelas UKIs continuaram aparecendo. Para removê-las, desativei os scripts responsáveis por essas entradas:
sudo chmod -x /etc/grub.d/15_uki
sudo chmod -x /etc/grub.d/25_bli
Desativar esses dois arquivos fez com que o GRUB mostrasse apenas as entradas personalizadas.
Caso queira ativá-los novamente, basta executar os mesmos comandos, mas trocando chmod -x por chmod +x.
Para referência, este é o formato do meu arquivo de entradas personalizadas. Basta alterar o caminho do arquivo .efi caso necessário, mudar o nome da entrada e adicionar o UUID da sua partição EFI (06_custom):
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Arch Linux (Normal)" {
search --fs-uuid --set=root UUID-da-partição-de-boot
chainloader /EFI/Linux/arch-linux.efi
}
menuentry "Arch Linux (CachyOS BORE)" {
search --fs-uuid --set=root UUID-da-partição-de-boot
chainloader /EFI/Linux/arch-linux-cachyos-bore.efi
}
menuentry "Arch Linux (LTS)" {
search --fs-uuid --set=root UUID-da-partição-de-boot
chainloader /EFI/Linux/arch-linux-lts.efi
}