Quando funciona limpinho
O caso mais limpo é quando não tem mod instalado ainda. Você criou uma instância Forge, nunca adicionou mod, quer mudar pra Fabric: muda loader e versão, pronto. O instalador do Forge fica no disco mas não atrapalha. Segundo mais limpo: trocar entre loaders bem parecidos, Forge pra NeoForge, ou Fabric pra Quilt. Muitos mods são source-compatíveis nesses pares e bastante mod Forge roda direto no NeoForge.
Quando vira bagunça
Trocas cross-família (Forge → Fabric, Fabric → Forge etc.) precisam da pasta mods limpa, porque mods Forge literalmente não carregam no Fabric e vice-versa. A instância sobe mas todo mod é silenciosamente ignorado. Instâncias de modpack bloqueadas têm uma restrição extra: o bloqueio impede mudanças pela aba Addons, mas o modal Edit ainda permite mudar o loader. É um footgun, o manifest do pack espera um loader específico, trocá-lo deixa o manifest apontando pro loader errado. Se quiser mesmo trocar numa instância de modpack, abra primeiro a aba Settings da instância e clique em Unpair na seção Modpack Info, pra parar de rastrear o manifest.
O que fica, o que muda
Ficam: mundos, prints, options.txt, suas contas, nome e ícone da instância, a versão do Minecraft. Mudam: o mod loader e a versão dele. A pasta mods não é mexida, você precisa limpar.
Se o lançamento falhar depois da troca
Causa mais comum: mods do loader antigo continuam em instance/mods/. Botão direito na instância → Open Folder, entre em instance/mods/, apague cada JAR. Depois adicione os mods que quer pro novo loader pela aba Addons. Segunda mais comum: a versão nova do loader não existe de verdade pra aquela versão do Minecraft. Alguns loaders pulam versões (Fabric raramente, Forge às vezes em menores antigas). Escolha a mais próxima disponível.
Uma alternativa: clonar primeiro, trocar no clone
Se você quer manter o setup Forge e testar Fabric na mesma versão Minecraft, botão direito na instância → Duplicate, depois troque o loader no clone. As duas ficam, você decide depois qual mantém.