Having worked with hyperspectral images from experimental setups, I know it's hard to fix these little details.
The best way my group has to fix alignment and chromatic shifts is to use calibration images: Take a picture of something simple for which you know how the result should look like, and use the same correction on every pictures you take hereafter.
A simple example I'm thinking would be to take a picture of a small white dot against a black background. Every misaligned color will create a colored dot at a different place. You then find the mathematical operation necessary to put all these colored dots back together, creating a single white one (it will probably be a translation with a color dependant magnitude).
IF this shift is always the same from picture to picture, you can implement it in your data reduction code. IF not, you will have to take a calibration picture before every picture you take.
If you're lucky, it will be a translation. If you're not, the transformation might also depend on where you are in the picture. In that case, use a grid of white dots.