Why are all the Gurmukhi characters in such a strange order?
Unicode for Indic languages is based on ISCII. ISCII encoded nine different Indic scripts and provided a mechanism to easily switch between the scripts. This enabled users to view any Indian language text in the script of their choice. This was possible because of the many similarities between Brahmi-based scripts. Due to this, all Indic scripts had equivalent characters at the same codepoint which is based on the Devanagari block. Because of this basis on the Devanagari block, the order does not seem correct to Gurmukhi readers.