Ah, I misunderstood your original post. So the setClipRect code does actually do what you want? If you are worried about optimization, I guess you could convert the division and modulus to bit shifting operations since they are power of two. The compiler optimization might do that automatically, I'm not sure.
In your case, I don't see any downside to using bitmap tables. It's basically a convenience feature that allows you to access a spritesheet by index. You don't really have to "split" the images, unless I am misunderstanding your use case.
As for tileBitmap, I think that is just for repeating a bitmap multiple times in a rectangle, not for drawing part of a bitmap.