If I implement this myself, would it be appropriate to just do a grid search over the possible parameters for the GARCH and ARIMA parts of the model (using the rugarch package), and select the one with the lowest AIC (or BIC)?
My experience with equities suggested that if you are confined to garch(p,q), then garch(1,1) is what you will want. Using a components model (Lee and Engle) is better -- it is sort of like a garch(2,2) but not quite the same.
When modeling multivariate garch (where there was a lot of choice in parameterization), it seemed to be that BIC was defnitely better than AIC. BIC has a larger penalty and so suggests smaller models. It looked like the penalty should be even bigger than in BIC -- that the BIC models were still too big.