Datums for positional GD&T

Datums for positional GD&T

So.. I am trying to understand how the software calculates the positions for positional tolerances.... Based on selected datums. 

Initially I was examining a part with some holes in it and just used the working coordinate system/origin at the intersection of all the datums. I thought I got some fairly decent results but an engineer told me that was wrong. However, they're not even sure how to lay this out. 

The best way I can explain it is this:

The part is about 12"x12"X2"  and shaped like a horseshoe. Looking at it from the "TOP" view the open part of the horseshoe is  facing the bottom of the screen or towards "Y-MINUS"  Now, the flat/under side of the part is Datum C.  Next is Datum-B which is the outermost RIGHT side of the part. Finally Datum-A spans across the tips of the horseshoe shape or the bottom of my screen. (SEE JPEG BELOW)

My question is this..... If datum-A is the primary datum for the position of the holes which spans about 12" and parallel to the X-axis, and Datum- B is the secondary datum modeled to be perpendicular to Datum-A and parallel to the Y-Axis and also spans about 12", and on the actual part, they are NOT perfectly perpendicular (nothing ever is).... How does the software calculate just where to measure the X  coordinates from if Datum- B is not perpendicular to Datum A.

For example... from a point on one end of Datum-B to the other, its .020" out of square with datum A....

Assuming Datum-A is held as a straight line for measurements from Y-ZERO,  how does the software pick a point to use as its X-ZERO to pull measurements for the positional calculations?

Are there any resources that can help me understand how this works?

Originally I was just leveling the part in the software based on the largest area (the bottom, Datum-C), then aligning the part to the most critical datum (Datum-A) then just picking up a point on the Datum-B side so set my origin for X-ZERO......

An engineer here told me to make lines for all datum surfaces, and then tell the software to use those as the GD&T datums for the software to calculate... but again... if Datum-B is like .020" out of perpendicularity from one end to the next.... something is going to be off right?     I am pretty confused about this as I just started doing QC work with CMMs.

Any insight would be greatly appreciated.

Ill attach a very poorly drawn JPEG of the part to help convey what I am talking about.