[Galaxy S II Android Development] samarium:
Good to hear you are verifying MD5s all along the way, download, on transfer to phone, and on install on phone, that is what I do, every time, to ensure I avoid potentially weird corruption issues.

If the hardware is marginal in some way it may manifest as an issue in difficult to understand ways. What you are describing is different enough from our experience that it is difficult to believe, but if the hardware is flakey then literally anything can happen, and you will probably not be able to do anything about it in software until you can understand what the issue actually is, and even then remediation, if possible, may require hacking something in the kernel and rebuilding the kernel and the boot image, none of which is trivial, and likely beyond your current capabilities, and it is certainly beyond my current capabilities. As others have said, you might need to procure another phone, hopefully cheap, to provide yourself with some basis of comparison.

If you have it working on 12.1, and have it repartitioned for 16.x, and you have an external sdcard loaded with all the install images for cm/los and maybe even gapps, and you have a process to quickly update the build.prop and disable setupwizard, then trying base level installs of 12, 13, 14, 15 should be pretty quick, relative to the age and slowness of the hardware :) anyway. With setup disabled, should make it quicker too. I just have a script on external sdcard and access from TWRP/Advanced/Terminal since I I'm too lazy to build a flashable zip. Installing gapps nano should be sufficient if you want to test that too. If your external sdcard has enough space, you can also take a nandroid backup from TWRP for each version allowing you to quickly restore, but make sure you enable compression in backup options.

In case you don't know, in the phone status, tap 7 times on the LOS build version to enable developer options in previous settings menu, and then enable advanced reboot which will allow long press power button to allow reboot to recovery or bootloader, thus allowing quick reboot rather than shutdown and then power up with multiple button press.

Also you can tweak the power button menu in settings, to enable screenshot. Then you could screen shot the various CM/LOS status screens to show the phone running various CM/LOS versions. Just make sure to copy the screenshots to the external storage before you do a rebuild, as if you wipe the sdcard between different version rebuilds, as I would to to ensure nothing was interfering, then you would also wipe screen shots from sdcard/Pictures/Screenshots. You can do this in TWRP with advanced/filemanger too. Certainly screen shots of the various About Phone screen with build number would help convince people. Alternatively you could extract screenshots via USB/MTP. In later builds you might have to go into developer options and enable USB / MTP from the default of charge only, if you don''t get a default pulldown notification for change USB mode on USB cable insert.

As you can see my old S2 does load LOS 16. I have only just done the rebuild from LOS 13 and over a years of non use, I haven't even activated google account yet. I even had to jumpstart the battery since it was on 2.7V and wouldn't startup and wouldn't change while off.