Well, If the player fails to catch Melmetal, I think make it more forgiving by just waiting in-game hours or days so they can appear around the player again.
Instead of just going to PC, Players can have a option to drop the Pokémon to allow them to play together and breed. It will be more recommended when fenced, works like in PokeWilds (fan-game).
I have a few suggestions but...