After messing with my home system for a bit, I realized that the encryption was not actually working and my password was getting rejected. I found a different decompiler which generated different (more sensible) code which is now generating the same password as the desktop Pentair app and is able to remotely login. This code needs a lot of manual deobfuscation.
Converted as much ugly code as I could find into appropriate C#-friendly versions. For example, all the manual ByteHelper stuff, buffer index tracking, etc. are now BinaryWriters/BinaryReaders. Also cleaned up a bunch of getter and setter methods to use C# properties.
There's still more to be done here, but this greatly simplifies the code for reading and comprehension.