Your issuer profile should reference a public key listed in verificationMethod and available in say assertionMethod.
That same key should be used in the proof.verificationMethod.
That key should be presented in such format (JWK is fine) that the verifier can transform the public key into the issuing address used for the blockchain network of the transaction.
You should host your document somewhere accessible from the web (no CORS).
How to generate a one-time code for the certificates?
If you pull up JSON-LD Playground and paste your certificate in, then take a look at the canonized tab, you’ll see a safe mode error, which means that this property didn’t get properly hashed when issuing (last time I checked the pyld library safe mode wasn’t implemented so it’s not failing at issuance time).
You’ll need to define the key college as a jsonld object into your context and issue again.
The fact that it passes on blockcerts.org is more the bug than the other way around so I’m looking into that.