(I haven't looked at the code for BW or pyglet, so take this for what it is...)
A while back I ported a game I made for desktop to iphone using opengl ES. The only issue I ran into is that ES lacks any immediate-mode support. I'm assuming this is the issue you are running into, or at least part of it.
A dirty solution would be to wrap any immediate-mode functions being used such as glVertex4f() so that they build to an in-memory vertex array, that is passed to the draw function at the end of the immediate mode calls.
Otherwise pyglet would need to be redone so vertices and texture coords were stored in gl-compatible arrays from the start (or converted pre-render which is slower), and the rendering code could just call glDrawArrays instead of glBegin()...glEnd(), etc.