I think you're still not understanding that the AVR's hardware SPI module is not the same as the hardware USART. Using the USART for SPI does not involve using the SPI registers, such as SPCR. If you read through section 20 of the datasheet, you'll see that it makes no reference to the SPI registers. Have you looked at the sample C code in section 20 for initializing the USART and sending data?
As far as your compilation issues go, just because a term is in the datasheet does not mean it is defined by WinAVR. If you find that a definition is missing, you can look through the appropriate included WinAVR header files to see if it is defined under a slightly different name, or you can replace it with the actual value. In your case, the problem is that there are two UMSEL bits:
Bit 7:6 – UMSELn1:0: USART Mode Select
The "n" here is the USART number, which is 0, so I expect there to be two defines you can use: UMSEL01 and UMSEL00. If these don't work, you can see from the register description that these are bits 7 and 6 of the register, so you can just directly set those bits:
UCSR0C = (1<<6);
However, this brings up another problem. We're talking here about using the USART in Master SPI mode, which requires both UMSEL bits to be set. You seem to be trying to use the USART in synchronous serial mode, which is different. In synchronous serial mode, you will not get the same behavior as described in section 20 of the datasheet.
By the way, I still think your best bet is to just bitbang the protocol like you already have (though I would generalize it so that you can just call functions to send an arbitrary eight bits).