In my regular OW and nitrox classes I had always taught this through giving students repeated problems, as you are doing now. A while back I had an experience that has somewhat shifted my approach, and you might benefit from that experience.
I had an OW dive student who was really struggling to learn the tables. So I told him I was appointing him the Dive Master for our group, and it was his responsibility to plan a three dive day for our group. I told him the maximum depth for the site, and asked him how deep the first dive would be and how long we would be there. He had to make a reasonable decision that did not max us out and require too big a surface interval. I then asked him how long we should stay out of the water before the next dive, and so on. By the time we were done, he had the tables nailed.
I now do something like that at least once in all my classes.
You can do that on your own, throwing in some nitrox twists. For example, you can change percentages on every dive.
You will not only learn the stuff, you will use the knowledge in a more real-world way.