My first thought would be to build your own frame out of wood. Maybe that's because I'm kinda cheap.
The easiest way is to cut out a square piece of particle board that fits the hole in your wall, then cut out an oversized speaker opening as close as you can get to the edges. Now THAT's a frame you can guarantee will be aligned properly, and not twisted like a science project.
Now you can lightly stretch speaker fabric (or the same fabric from a material store) over the board, wrapping it around to the back where you staple/glue it.
Since the grille fabric is opaque, you don't need to worry about how the hole looks - just that the outside edges line up with the hole in your wall which should be square to keep your sanity.
How does that work for you?