Fingers on hand rig deform until I try to move them
You have dependency cycles in your rig. Running the file with blender --enable-new-depsgraph SimplifiedBlend.blend shows this on the console:

Read blend: /home/sybren/Downloads/SimplifiedBlend.blend
Dependency cycle detected:
  'OBLArm.POSE_INIT()' depends on 'OBLIndex.lindex.BONE_DONE()' through 'IK'
  'OBLIndex.lindex.BONE_DONE()' depends on 'OBLIndex.lindex.BONE_READY()' through 'Ready -&gt; Done'
  'OBLIndex.lindex.BONE_READY()' depends on 'OBLIndex.lindex.BONE_CONSTRAINTS()' through 'Constraints -&gt; Ready'
  'OBLIndex.lindex.BONE_CONSTRAINTS()' depends on 'OBLArm.LArm_Fore.BONE_DONE()' through 'Child Of'
  'OBLArm.LArm_Fore.BONE_DONE()' depends on 'OBLArm.POSE_IK_SOLVER()' through 'IK Solver Result'
  'OBLArm.POSE_IK_SOLVER()' depends on 'OBLArm.POSE_INIT_IK()' through 'Init IK -&gt; IK Solver'
  'OBLArm.POSE_INIT_IK()' depends on 'OBLArm.POSE_INIT()' through 'Pose Init -&gt; Pose Init IK'
Dependency cycle detected:
  'OBLRing.lring.BONE_CONSTRAINTS()' depends on 'OBLArm.LArm_Ring_1.BONE_DONE()' through 'Child Of'
  'OBLArm.LArm_Ring_1.BONE_DONE()' depends on 'OBLArm.LArm_Ring_1.BONE_READY()' through 'Ready -&gt; Done'
  'OBLArm.LArm_Ring_1.BONE_READY()' depends on 'OBLArm.LArm_Ring_1.BONE_POSE_PARENT()' through 'Pose -&gt; Ready'
  'OBLArm.LArm_Ring_1.BONE_POSE_PARENT()' depends on 'OBLArm.LArm_Fore.BONE_DONE()' through '[Parent Bone -&gt; Child Bone]'
  'OBLArm.LArm_Fore.BONE_DONE()' depends on 'OBLArm.POSE_IK_SOLVER()' through 'IK Solver Result'
  'OBLArm.POSE_IK_SOLVER()' depends on 'OBLArm.POSE_INIT_IK()' through 'Init IK -&gt; IK Solver'
  'OBLArm.POSE_INIT_IK()' depends on 'OBLArm.POSE_INIT()' through 'Pose Init -&gt; Pose Init IK'
  'OBLArm.POSE_INIT()' depends on 'OBLRing.lring.BONE_DONE()' through 'IK'
  'OBLRing.lring.BONE_DONE()' depends on 'OBLRing.lring.BONE_READY()' through 'Ready -&gt; Done'
  'OBLRing.lring.BONE_READY()' depends on 'OBLRing.lring.BONE_CONSTRAINTS()' through 'Constraints -&gt; Ready'
Dependency cycle detected:
  'OBLArm.POSE_INIT()' depends on 'OBLMid.lmid.BONE_DONE()' through 'IK'
  'OBLMid.lmid.BONE_DONE()' depends on 'OBLMid.lmid.BONE_READY()' through 'Ready -&gt; Done'
  'OBLMid.lmid.BONE_READY()' depends on 'OBLMid.lmid.BONE_CONSTRAINTS()' through 'Constraints -&gt; Ready'
  'OBLMid.lmid.BONE_CONSTRAINTS()' depends on 'OBLArm.LArm_Index_1.BONE_DONE()' through 'Child Of'
  'OBLArm.LArm_Index_1.BONE_DONE()' depends on 'OBLArm.LArm_Index_1.BONE_READY()' through 'Ready -&gt; Done'
  'OBLArm.LArm_Index_1.BONE_READY()' depends on 'OBLArm.LArm_Index_1.BONE_POSE_PARENT()' through 'Pose -&gt; Ready'
  'OBLArm.LArm_Index_1.BONE_POSE_PARENT()' depends on 'OBLArm.LArm_Fore.BONE_DONE()' through '[Parent Bone -&gt; Child Bone]'
  'OBLArm.LArm_Fore.BONE_DONE()' depends on 'OBLArm.POSE_IK_SOLVER()' through 'IK Solver Result'
  'OBLArm.POSE_IK_SOLVER()' depends on 'OBLArm.POSE_INIT_IK()' through 'Init IK -&gt; IK Solver'
  'OBLArm.POSE_INIT_IK()' depends on 'OBLArm.POSE_INIT()' through 'Pose Init -&gt; Pose Init IK'
Dependency cycle detected:
  'OBLArm.POSE_INIT()' depends on 'OBLThumb.lthumb.BONE_DONE()' through 'IK'
  'OBLThumb.lthumb.BONE_DONE()' depends on 'OBLThumb.lthumb.BONE_READY()' through 'Ready -&gt; Done'
  'OBLThumb.lthumb.BONE_READY()' depends on 'OBLThumb.lthumb.BONE_CONSTRAINTS()' through 'Constraints -&gt; Ready'
  'OBLThumb.lthumb.BONE_CONSTRAINTS()' depends on 'OBLArm.LArm_Fore.BONE_DONE()' through 'Child Of'
  'OBLArm.LArm_Fore.BONE_DONE()' depends on 'OBLArm.POSE_IK_SOLVER()' through 'IK Solver Result'
  'OBLArm.POSE_IK_SOLVER()' depends on 'OBLArm.POSE_INIT_IK()' through 'Init IK -&gt; IK Solver'
  'OBLArm.POSE_INIT_IK()' depends on 'OBLArm.POSE_INIT()' through 'Pose Init -&gt; Pose Init IK'
Dependency cycle detected:
  'OBLArm.POSE_INIT()' depends on 'OBLLittle.llittle.BONE_DONE()' through 'IK'
  'OBLLittle.llittle.BONE_DONE()' depends on 'OBLLittle.llittle.BONE_READY()' through 'Ready -&gt; Done'
  'OBLLittle.llittle.BONE_READY()' depends on 'OBLLittle.llittle.BONE_CONSTRAINTS()' through 'Constraints -&gt; Ready'
  'OBLLittle.llittle.BONE_CONSTRAINTS()' depends on 'OBLArm.LArm_Fore.BONE_DONE()' through 'Child Of'
  'OBLArm.LArm_Fore.BONE_DONE()' depends on 'OBLArm.POSE_IK_SOLVER()' through 'IK Solver Result'
  'OBLArm.POSE_IK_SOLVER()' depends on 'OBLArm.POSE_INIT_IK()' through 'Init IK -&gt; IK Solver'
  'OBLArm.POSE_INIT_IK()' depends on 'OBLArm.POSE_INIT()' through 'Pose Init -&gt; Pose Init IK'


Circular dependencies can cause all kinds of nasty things, so it's better to clean them up. You also always want to enable the new dependency graph  with --enable-new-depsgraph unless you have a strong reason not to. It allows for more granular control, allowing for more complex rigs without resulting in dependency cycles.

To use custom bone shapes, use actual custom bone shapes, instead of trying to incorporate other objects into your rig.