Your understanding is correct in that by using the P8D assignment, you are obligated to use P8D7 (P16B15 is lost due to overlap by a higher priority port) in the same 8 bit access.X0D40 P8D4 P16B12 RST_X_AD_DA
X0D41 P8D5 P16B13 RST_X_D
X0D42 P8D6 P16B14 LED_BLANK_X_L
X0D43 P8D7 P16B15
Can you explain what is the purpose of PORT_MCLK_COUNT? If output, you could just bit stuff P8D7 prior to outputting the 8 bit value to the port pins.
Another idea is to not use the P8D definition but rather
P1M0 (instead of P8D0)
P1N0 (instead of P8D1)
P1O0 (instead of P8D2)
P1P0 (instead of P8D3)
then review your code that would have made use of P8D0..P8D3 and access those port pins using the single bit mode as defined above.
This approach will then allow you to use P16B12..15 as you wish. The definitions are simple and mostly static GPIO (actually output only) functions so very easy to manipulate using the P16B12..15 access.
That is, build up your bit map before forcing this map to the port pins for (RST_X_AD_DA, RST_X_D, LED_BLANK_X_L and now also PORT_MCLK_COUNT).
Not sure if this solution is any better than leaving as P8D7 and stuffing the bit as required.
Are there any other free pins in your design that you can use? For clock i/o, best to stick to single bit port pin mappings. Double-check the XMOS docs but pretty sure that is required.