I used the same approach for the my quad tree implementation. Faces only have x and y coordinates, but the bounding boxes for each node is 3d.
For culling there is not need to convert each face. The bounding boxes are already 3d and you just perform culling on them. Once you have found a leaf node which is visible you add it's indices. Same goes for picking until you reach a leaf node, where you will have to check each triangle with the picking ray.