Oi Wagner, muito interessante esta sua dúvida.
Neste caso, você tem um mapeamento bem customizado mesmo, visto que está apontando para um tipo específico do Oracle que não existe em outros bancos de dados. Sendo assim, vou ver se consigo pelo menos te dar um direcionamento mínimo aqui.
Encontrei algo interessante pra você aqui: http://stackoverflow.com/questions/5424148/is-it-possible-to-map-a-table-name-for-a-domain-object-dynamically-in-grails
No caso, note que a resposta diz apenas como lidar com o mapeamento do nome da tabela, e não com os atributos, mas acredito que já dá algum direcionamento. Além disto, talvez a gente possa pensar de outra forma: talvez você possa mudar os mapeamentos da aplicação com base no momento em que a mesma é iniciada, modificando o bloco constraints antes que ele seja carregado pelo GORM.
Outra opção, que não sei se pode ser aplicada com certeza, consistiria na criação dos arquivos de configuração em XML na pasta conf/hibernate do projeto. O que talvez desse pra você fazer é projetar um esquema de build que substitua estes arquivos de acordo com os parâmetros. Mas novamente, neste caso, não sei se funcionaria bem com as classes padrão de domínio do Grails, pois só usei os arquivos do Hibernate com classes Java padrão.
São apenas idéias, mas podemos ir desenvolvendo seu problema por aqui até encontrar uma solução. O que acha?
Desculpem a formatação problematica!