I am sorry I am not able to answer. I am not sure I have missed something but we have to think about different clocks:
1) BUSCLK frequency of the bus.
What value of BUSCLK you want to have?
2) OSCCLK frequency of the oscillator from which the busclk is derived. (12MHz in your case)
3) CANCLK - frequency of input clocks to a CAN module. The CANCLK can be OSCCLK or BUSCLK.
If the CANCLK is derived directly from OSCCLK the busclk does not influence CANCLK.
The results are highlighted. The only problem I see sample point. If it suits to you then it is OK.

I can see you use ATD and SCI in your example without any info about busclk from which the clock for these peripherals are derived. I have look at your SCI setup and you really use 6.25MHz busclk.
Now there are two ways:
1) Either select new busclk and adjust clock setup for SCI and ATD
2) or to use original clock setup for ATD and SCI peripherals and try to trim busclk to 6.25MHz.
If I assume item 2, then your original setup is OK and I suppose you do not want to change anything in the ATD and SCI peripheral setup, so:
| OSC[MHz] | SYNDIV | VCOFRQ | REFDIV | REFFRQ | POSTDIV | fref | fvco | fPLL | fvco/fref | fbus |
| 12 | 24 | 1 | 11 | 0 | 3 | 1 | 50 | 12.5 | 50 | 6.25 |

// make 6.25MHz BUSCLK from the external oscillator 12MHz
void CPMU_Init( void )
{
//============================================================================
ECLKCTL_NECLK = 0; //enable ECLK (BUSCLK at PP0)
//============================================================================
//Default state after reset:
// So after reset:
// CPMUOSC_OSCE == 0 => fref = firc1m = 1MHz
// CMPU_PLLSEL == 1 => fpll = fref / 4 = while not locked
// = 1MHz / 4 = 250kHz
// then fpll = 2 * fref *(syndiv+1) / (postdiv + 1) =
// = 2 * 1MHz *(24 +1) / (3 + 1) =
// = 50 / 4 = 12.5MHz
// fbus = fpll / 6.25MHz
Delay( 1000 ); //delay in order to see default bus frequency on ECLK output
//============================================================================
// PLL setup 16 MHz BUSCLK from 4 MHz
// expected frequency after lose of OSC, PEE, PBE:
// - fbus= fpll/2= 1/4MHz/2 = 125 kHz till locked then
// - fbus= fpll/2= 2*fref*(syndiv+1)/(postdiv + 1)/2 = 2*1*25/(3+1)/2=6.25MHz
CPMUSYNR = 0x58; // 0B01_0x18
CPMUREFDIV = 0x0B; // 0B00_0x0B
CPMUPOSTDIV = 0x03;
CPMUOSC_OSCE = 1;
while( CPMUIFLG_UPOSC == 0 )
{
__RESET_WATCHDOG(); // if COP is enabled by HW then it should be served in loops
// add some code for time out error
}
// PLLSEL - CPMUCLKS_PLLSEL = 1; // PEE ; CPMUCLKS_PLLSEL = 0; // PBE
// PSTP - COP stopped in STOP mode
// CSAD - COP stopped in STOP mode
// COPOSCSEL1 = 0; COP clock derived by COPOSCSEL0
// PRE - RTI disabled when pseudo STOP
// PCE - COP stopped in pseudo STOP mode
// RTIOSCSEL - RTI clock source is IRCCLK
// COPOSCSEL0 = 0; COP clock source IRCCLK
// After writing CPMUCLKS register, it is strongly recommended to read
// back CPMUCLKS register to make sure that write of PLLSEL,
// RTIOSCSEL and COPOSCSEL was successful. This is because under
// certain circumstances writes have no effect or bits are automatically
// changed
// You can add some timeout into the loop if required
do
{
//CPMUCLKS = 0B10100000;
CPMUCLKS = 0B10000000;
// add some code for time out error
}
// while( CPMUCLKS != 0B10100000);
while( CPMUCLKS != 0B10000000);
#ifdef COP_EXAMPLE
CPMUCOP = 0B01000101; //4.194304s till timeout, 1MHz IRCCLK used by default
//RSBCK == 1; COP and RTI Stop in Active BDM Mode Bit
#endif
// voltage regulator selections
// select power option
//.........................................
//Note: Write once Register
//CPMUVREGCTL = 0x06; //Turn on Ballast transistor for VDDX domain
//and switch on regulator for VDDC domain
//OR
CPMUVREGCTL = 0x05; //Internal voltage regulator for VDDX domain
//and switch on regulator for VDDC domain
}
Best regards,
Ladislav