Guardar posición

private Vector3 checkpoint;

Al tocar un checkpoint:

checkpoint =
    transform.position;

Respawn

void Respawn()
{
    transform.position =
        checkpoint;
}

Con CharacterController

Conviene desactivarlo mientras cambiás posición.

controller.enabled = false;

transform.position =
    checkpoint;

controller.enabled = true;

Persistente

Si querés conservarlo entre sesiones, guardalo en SaveData.

Resumen rápido

Vector3 checkpoint
transform.position