Yeah, I have notcied your thread on Ogre's forums

I do not think Ogre's Devs are interested in any input patches, as the last disscussed plan was to integrate OIS as a dependency for the Ogre demos in the next major version of Ogre... This is for simliar reasons as using CEGUI instead of the inbuilt Ogre GUI. Ogre is a rendering engine, and hence does not support internally (or should not) input. It was there for convienence.
OIS has the added benifit, since Ogre is trying to move forward in the console platform world, of having a less strict license then SDL for instance, so can be ported anywhere. So, perhaps you should not really be looking to support both OIS and Ogre's input? If anything, you could be looking at supporting the various other input systems in addition to OIS (ie. SDL, libGII, etc) - just a thought.
As for your issues. The only way I see of converting to an OgreKeyevent ( a much more complex object then a OIS::KeyEvent ) is to just use the constructor Ogre::Keyevent( , , , , ) passing in the equivalent OIS::KeyEvent properties to it. Or, you could wrap it up instead and not use either Ogre::Keyevent nor OIS::KeyEvent but your own KeyEvent structure and fill that in with the info you recieved from ogre or ois.
As for the USE_OIS define. I think that should be trivial to add. But, I kinda don't see how you plan on including it? If you are using the USE_OIS to conditionally compile in OIS headers, then how will you include the needed file that defines the define? Also, I don't really know if the define USE_OIS is really useful in many cases, could a OIS_VERSION macro work better? as that could be useful in other situations to.