Newbie post here, so if I don't make any sense just ignore :
How about there really were a David, and he got killed in the same accident oliver had (maybe his parents lied to him about how he became like that, they do seem to have a tendencie to hide
things...). Oliver can't cope with his twin's death and refuse to let him go...
Or on a complete different twist, how about there is no Oliver and David is the "real" son but since he has such a disturbing personality his parents prefer the caracter he created (Oliver) ?
OK, I'll stop here before I give myself a headache.