I notice in the CameraDeviceBehaviour there seems to be a method to GetCameraImage. Do you have any specific info regarding how to call this method, and what you would expect to get back. More specifically would the image include any Unity-rendered stuff or is it just the video signal from the camera?
On a completely different note, I have been browsing around the code and I have noticed a couple of things. You seem to rely on the class constructor to initialize stuff at times. I think the Unity docs discourage this usage and the best practice is to use Start or Awake to initialize things.
The other thing that could be improved is to avoid making repeated calls like FindObjectOfType, but instead cache the return values for speed. This is probably not a huge factor for performance, but it would certainly influence it. Since the poor old device is fighting for its life, performancewise, we might want to give it as much room as we can.
One thing that I noticed is that in adb logcat the frametimes seem to vary in an unusual way. I guess this has to do with the AR plugin workload varying over time. What can be done to lessen the load on the plugin? My guess is to have as few concurrent fiducials as possible, make sure the lighting conditions are very good, and the fiducial quality as well, and to use autofocus.