Get best fit sphere of humeral head

Yes, sure. You have set it yourself in the script: sphere.SetCenter(centerX, centerY, centerZ)

You can create a plane at any position. Add a new plane node, set its position to the sphere centerpoint, and set a normal.

You can use basic computational geometry methods for computing distances, angles between points, lines, planes, project points, lines, determine intersections, etc. There are a couple of examples in the script repository to see how to get inputs and show outputs in Slicer, and you can learn the rest by typing your question into Google search (for example python distance between two planes) and reading through the search results. You will get both detailed mathematical explanation and complete Python implementations (typically few lines of numpy code). If you really get stuck then you can ask here, but it could be useful for you to spend some with reading and experimenting.