Your working looks OK, but as a suggestion for the future: you should probably post your data so that it can be evaluated in some kind of statistical package like R.
The reason is that checking all the calculations by hand are tedious and are prone to errors.
For this reason if you say posted the outputs and inputs of data into a package, it's much easier to verify since all we have to do is check the inputs and run the code on our machine to verify since the package is going to be the same and do the same thing.
I suspect that your results are right, but the only question I have is if you chose the independent contingency table to have a uniform distribution with respect to the frequencies in the table (I suspect you did this).
If you do the above, then it will be easier for other people to check and I guarantee that more people will want to check it since it will be easier on them to do so.