Problem 1 must be related to a memory allocation problem. The only reason for SEM_create() to fail is if there's not enough memory.
SIO_create() should return NULL if it fails or the device driver returns a status code.
If you give me your BIOS version, I can send you the sources for the SIO module. The source code for DIO and GIO are included in ti/bios/src folder. You might want to copy the dio*.c files into your project and step into them and see if you get any clues. You can do same for SIO.