The Casio FX-991EX calculator has a QR code feature for accessing the current equation from another device. It supports version 3 QR codes for some menus and version 11 for most menus.
For example, using version 11 with this feature for 1+2 in Calculate mode produces a QR code linking here. I have taken a photo of the QR code, shown below, but my camera quality is quite poor. I have also made several edits of the image, also shown below.
Original photo:

Photo edited to be easier to scan and reference. The changes I made include making it monochrome, rotating it and increasing the contrast.

QR code re-created as a pixel image. Keep in mind that, while I spent a few hours producing and double-checking this, there are several errors. However, it scans correctly, so it should be close enough to compare with.

Re-creation color-coded to indicate primary features of the QR code:

I am wanting to reverse-engineer these QR codes so that I can calculate an equation to produce a QR code with a specific image in order to display this image on the calculator. I'm aware that I won't be able to control lots of the QR code's pixels, but theoretically I'd be able to at the very least brute-force the closest QR code to a given image.
I've found that the QR code uses 0 error correction and a mask pattern of 4. I've used a Python QR code library to produce a QR code using these same settings (code and result shown below).
from qrcode import QRCode
link = 'http://wes.casio.com/math/index.php?q=I-235F+U-000A00673394+M-C10000AD00+S-001410110000100E1010B00035DE+R-0300000000000000010000000000000000000000+E-31A632'
qr = QRCode(version=11,error_correction=0,mask_pattern=4)
qr.add_data(link)
qr.print_ascii(invert=True)

However, it is clearly different to the original QR code. I produced a difference map between the generated and original QR code:

As you can see, all the format and version info is identical and they link to the same URL, but the actual data is completely different. Even the encoding type, ECI type and length are the same. So where do I go from here? What could be causing such a difference between the two codes?