This seems to be a problem with SwiftKey. To fix it I disabled all other keyboards with Titanium Backup.
The issue is that Google Play installs paid apps in a particular location on your phone and that in some versions of Android this location is not available at the point in the boot process where keyboards are being switched on. So your phone does not know that you have SwiftKey, and it defaults back to the phone's keyboard.
http://support.swiftkey.net/knowled...ult-keyboard-reset-on-every-restart-or-reboot