In an earlier version of the the code that I updated there was an issue with the gripper with one of the buttons. That was it was setting the wrong variable and as soon as you released the button if I remember correctly it returned back to near the center location... Fixed in the thread that Robot Dude mentioned... I think the normal code will stay when you release the button stays where it is when you released it. You can change that to move back to the center pretty easily. For example the L1 code might look something like:
IF (DualShock(2).bit2 = 0) AND (GripperPressure>GripperHoldPressure) THEN ;L1 Button test
TargetGripper1 = (TargetGripper1-abGOModifier(ArmSpeedSelect)) min Gripper_MIN ;Gripper Close
IF DualShock(2).bit2 AND (LastButton(1).bit2 = 0) THEN ;L1 Button release test
TargetGripper1 = 0 ; put to center position...
L2 would be similar...
As for moving the elbow more than 45 degrees. I believe that is all controlled by the math, in the function: ArmIK [IKWristPosX, IKWristPosY, IKGripperAngle1].
My guess is that the math is setup such that if it thought it needed to go farther that the shoulder would move to get to the desired location... When the elbow does not extend to where you want it, is the shoulder at it's min or max position? If this is the case, my guess is to get what you want, the math would need to be changed, to detect that the shoulder has been constrained and then recalculate the elbow from there. But I am guessing as I did not write this code...