Hi Marthin,
We do our fallback a bit different. We've run a restore this way probably about a dozen times with no real issues.
We unload the cmod tables to a backup directory and if we need to fall back we drop the tables and recreate them with the previous version and loading from the backups.
This is the JCL we use to unload the pre upgrade tables:
//**************************************************************
//* This job is used to back up all CMOD tables (14P) AT 8.5.
//* this is done as part of the fallback process.
//**************************************************************
//**************************************************************
//* Copy statement to UNLOAD CMOD tables prior to migration
//**************************************************************
//CPYLOAD EXEC PGM=IKJEFT01,COND=(4,LT)
//OUTHFS DD PATH='/etc/ond/14P/temp/upgd95.cmd',
// PATHDISP=(KEEP,DELETE)
//INMVS DD *
cd /SYSTEM/etc/ond/14P/backup/
/usr/lpp/ars/V8R5M0/bin/arsdb -I ond14P -vx
/*
//SYSTSPRT DD SYSOUT=(,)
//SYSTSIN DD *
OCOPY INDD(INMVS) OUTDD(OUTHFS) TEXT CONVERT(YES) PATHOPTS(USE)
/*
//*
//**************************************************************
//* Run the command created in previous step
//**************************************************************
//RNLOAD EXEC PGM=BPXBATCH,REGION=0M,COND=(4,LT)
//STEPLIB DD DSN=ONDDODP.V10.SDSNEXIT,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOAD,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOD2,DISP=SHR
//STDIN DD PATH='/etc/ond/14P/temp/upgd95.cmd',PATHOPTS=(ORDONLY)
//SYSOUT DD SYSOUT=(,)
//SYSERR DD SYSOUT=(,)
//STDOUT DD SYSOUT=(,)
//*
The following JCL would fallback to 8.5 from 9.5:
//**************************************************************
//* This job is used to fall back a CMOD instance (14P) to 8.5.
//* This is accomplished in 3 steps:
//* 1) Deleting all system tables under the upgraded release.
//* 2) Re-Create all system tables.
//* 3) Restore the CMOD Table Data from unloaded tables.
//**************************************************************
//**
//**************************************************************
//* Delete all CMOD tables with prompt of "Y" in STDIN.
//**************************************************************
//DELSYS EXEC PGM=BPXBATCH,REGION=0M,COND=(4,LT),
// PARM='SH /usr/lpp/ars/V9R5M0/bin/arsdb -I ond14P -vd'
//STEPLIB DD DSN=ONDDODP.V10.SDSNEXIT,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOAD,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOD2,DISP=SHR
//STDIN DD PATH='/SYSTEM/etc/ond/responseyes.txt', <= Reply to DELETE
// PATHOPTS=(ORDONLY)
//SYSOUT DD SYSOUT=(,)
//SYSERR DD SYSOUT=(,)
//STDOUT DD SYSOUT=(,)
//**
//**************************************************************
//* Copy statement to Create/Build CMOD System tables.
//**************************************************************
//CPYCRT EXEC PGM=IKJEFT01,COND=(4,LT)
//OUTHFS DD PATH='/etc/ond/14P/temp/upgd85.cmd',
// PATHDISP=(KEEP,DELETE)
//INMVS DD *
cd /etc/ond/14P/temp/
/usr/lpp/ars/V8R5M0/bin/arsdb -I ond14P -vrt -O
/*
//SYSTSPRT DD SYSOUT=(,)
//SYSTSIN DD *
OCOPY INDD(INMVS) OUTDD(OUTHFS) TEXT CONVERT(YES) PATHOPTS(USE)
/*
//*
//**************************************************************
//* Run command created in previous step
//**************************************************************
//RNCREAT EXEC PGM=BPXBATCH,REGION=0M,COND=(4,LT)
//STEPLIB DD DSN=ONDDODP.V10.SDSNEXIT,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOAD,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOD2,DISP=SHR
//STDIN DD PATH='/etc/ond/14P/temp/upgd85.cmd',PATHOPTS=(ORDONLY)
//SYSOUT DD SYSOUT=(,)
//SYSERR DD SYSOUT=(,)
//STDOUT DD SYSOUT=(,)
//*
//**************************************************************
//* Copy statement to Load from backups.
//**************************************************************
//CPYLOAD EXEC PGM=IKJEFT01,COND=(4,LT)
//OUTHFS DD PATH='/etc/ond/14P/temp/upgd85.cmd',
// PATHDISP=(KEEP,DELETE)
//INMVS DD *
cd /etc/ond/14P/backup/
/usr/lpp/ars/V8R5M0/bin/arsdb -I ond14P -vi
/*
//SYSTSPRT DD SYSOUT=(,)
//SYSTSIN DD *
OCOPY INDD(INMVS) OUTDD(OUTHFS) TEXT CONVERT(YES) PATHOPTS(USE)
/*
//*
//**************************************************************
//* Run command created in previous step
//**************************************************************
//RNLOAD EXEC PGM=BPXBATCH,REGION=0M,COND=(4,LT)
//STEPLIB DD DSN=ONDDODP.V10.SDSNEXIT,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOAD,DISP=SHR
// DD DSN=ONDDODP.V10.SDSNLOD2,DISP=SHR
//STDIN DD PATH='/etc/ond/14P/temp/upgd85.cmd',PATHOPTS=(ORDONLY)
//SYSOUT DD SYSOUT=(,)
//SYSERR DD SYSOUT=(,)
//STDOUT DD SYSOUT=(,)
//*
This has worked pretty well for us but I suggest running through it with a test instance a number of times to get comfortable with it.