Is there a way to assign an object to coordinates on the local axis using Python?
Believe this is the answer... although there may be better solutions. 

In essence when the local x and y axes are flipped then the matrix looks like this:

&gt;&gt;&gt; cab.matrix_world
Matrix(((-1.0, 1.5099580252808664e-07, 0.0, 0.0),
        (-1.5099580252808664e-07, -1.0, 0.0, -0.12700000405311584),
        (0.0, 0.0, 1.0, 0.0),
        (0.0, 0.0, 0.0, 1.0)))


The key values there being the scale values which represent the flipped axes. So this axis is determined the following way:

matrix = cab.matrix_world
axis = (matrix[0][0], matrix[1][1], matrix[2][2])
axis = (-1, -1, 1)


Then to get the relative local coordinates the scale factor has to be multiplied by the local coordinates:

x = cab.location[0] * axis[0]
y = cab.location[1] * axis[1]
z = cab.location[2] * axis[2]


This gives x,y,z as if the whole coordinate system revolved around the local axis (instead of having local coordinates still being given in relation to a parent). This may only work in cases of the axes being flipped, since other rotations use more of the matrix (haven't got that far yet). 

The reason I need this work in terms of location as opposed to translation is due to the fact that I keep an offset slider parameter for the user, which is the distance from the wall. Applying this slider to a translation does not work correctly, while being able to use the local axis with relative distance does. 

If there are better solutions to this I'll update/replace this answer. However the answers I could find dealt with using local axes with translation, rotation, etc.