A mensagem de erro é extremamente óbvia!!! e o seu exemplo não é reproduzível pois faltou colocar "library(ltm)".

O problema está na especificação do argumento "model"!!! Ao abrir a função tem-se:

probs <- if (model == "grm") {
            gammas <- lapply(thetas, function(x) {
                nx <- length(x)
                if (IRT)
                  cbind(plogis(x[nx] * (z - matrix(x[-nx], n,
                    nx - 1, TRUE))), 1)
                else cbind(plogis(matrix(x[-nx], n, nx - 1, TRUE) -
                  x[nx] * z), 1)
            })
            lapply(gammas, function(x) {
                nc <- ncol(x)
                cbind(x[, 1], x[, 2:nc] - x[, 1:(nc - 1)])
            })
        }

Aqui, este objeto é calculado de modo que contém valores negativos em suas listas. Logo, e claramente, a função "sample" irá acusar erro, uma vez que,

X <- matrix(0, n, p)
        for (j in 1:p) {
            for (i in 1:n) X[i, j] <- sample(ncatg[j], 1, prob = probs[[j]][i,
                ])
        }

Este objeto "probs" é justamente usado no argumento "prob" da função "sample" e como sabemos, não existe probabilidade negativa segundo os axiomas de Kolmogorov.

Detectei o erro, porém não posso lhe dar a solução pois TRI não é algo que entendo!!

(s,f,p)
Allaman