It looks like the ID is right in the printout, but we change it later (and then there's no second printout when we UPDATE daddy.daddy, so the reference is to something that doesn't exist?) so I think changing mev_pause_release_confirm like this should fix it:
///mev_pause_monsters_release_confirm() function mev_pause_monsters_release_confirm() { var granddad = daddy.daddy; message_spawn(tsprintf("You released %.",amp_get_monster_name(my_monster))) array_delete(global.active_monster_party,my_monster,1) array_insert(global.active_monster_party,AMP_FIRST_ACTIVE + PARTYSIZE_ACTIVE - 1,[]) amp_clear_monster(AMP_FIRST_ACTIVE + PARTYSIZE_ACTIVE - 1) with(granddad){ msh_spawn_monster_list(mev_pause_monsters) } instance_destroy(daddy) instance_destroy() }