I can't give feedback about using puzzlescript plus, only the vanilla version, but - have you tried enabling the various prelude debug tags (
https://www.puzzlescript.net/Documentation/prelude.html ) to see
1) what rules are getting generated (keyword: debug)
2) what rules are getting executed, and how much? (keyword: verbose_logging) The cost of searching for rules is normally small in comparison to that of doing an replacement, so it might be of help.
Another more advanced option would be to use your browser's developer mode to do javascript profiling, but that may not yield much directly actionable info.
Other things:
Rules with asterisks can be expensive.
Certain properties on the left-hand-side can end up getting exploded into a lot of rules on compilation (the puzzlescript compiler breaks down rules into multiple simpler rules).
Using 'again' can in certain circumstances be expensive, because it effectively has to run everything all over again (maybe more than once).
Also, try it out on different browsers - you want your game to perform well on all, but you might find the per-browser performance differences interesting (in my experience safari was by far the fastest for puzzlescript gameS).
I hope some of the above can be of some help.