# [Jelly], 123 bytes

    L“|  |”ẋṫ9“/  \“\  /”jµ“<  >”Ḋ?⁶ẋ8¤s4¤js2s2
    z⁶⁾_-jⱮZj@"Ç;“¤ḢḲ⁷“I÷(jḣɠv“߯Aḍ6³ḶmY“£Kþ³*7⁻Ṇ“£Kþ³(VzB’ṃ“ \_¶(o)/|-w^”¤⁶ẋ7¤;Ɱ$¤

[Try it online!][TIO-koiq5six]

[Jelly]: https://github.com/DennisMitchell/jelly
[TIO-koiq5six]: https://tio.run/##XZHdShtBFMfv9ylOFiFR8gFBtCVBW6Gg6KUINmlDstm4u2x2ws6sYTUXSQsNRHwAoaXF7F2LYK3rxoAXs7TQx5h5ke0xWhWHA8P/f37nYxhLt20/SbZk/3MPoCf7X8T1kZh8f4lGAaCKVxWggL7FL1GUAVZuoWi0Kgchsi94QBd5YNEiLSoH6MnBTS1nyfOzt9YrNR6WsIgHIjoV0U85uEK1EV9lLBGN/37bRxV//T19LaLjJX4horC9e4uPN@MbfrGwLAdTMfn06GR2DtZk/0RMPqIH1RoPM2S@0Mt13@NKPLhbaJkHJZw@x4NETH/Fw90/I/nhh4Vr8ZCHSVJRVFXd9jumVrdBI11a94F4rOOxFCays2yXKFumo9MHwzApYDBDh5bpUgY2poG0wHSwMK88BaiuEac5I/Kwwf7bNnH2dMqyQMlMN7xGw0baIJ7dBMpcnWkGMIIDsOZZT2aY7n1LZR2/jECXuHYzpWRKJTWdPiyXK2lVwfOm3WH@DKT3rZ00A63uUR3qjg8dl@DUNs3jq5R3/wA "Jelly – Try It Online"

-26 bytes using base + integer compression (thanks to Bubbler for the idea)  
-2 bytes thanks to caird coinheringaahing / Nick Kennedy

## Explanation

    L“|  |”ẋṫ9“/  \“\  /”jµ“<  >”Ḋ?⁶ẋ8¤s4¤js2s2  Helper Link - generates the side borders
                                  ?              If
                                 Ḋ               list[1:] (basically, if the length is not 1)
    L“|  |”ẋṫ9“/  \“\  /”jµ                      Sublink; generate the side borders for the non-edge case
    L                                            Take the length
     “|  |”ẋ                                     Repeat "|  |" that many times
            ṫ9                                   Tail; remove the first 8 elements
              “/  \“\  /”j                       Use that result to join ["/  \", "\  /"]
                           “<  >”                Otherwise, return "<  >"
                                   ⁶ẋ8¤          " " * 8
                                       s4¤       split into slices of size 4
                                          j      Prepend and append (Extra spaces are needed because the top and bottom borders don't have side borders)
                                           s2    Slices of length 2 (separate the left and right border components)
                                             s2  Slices of length 2 (group the left and right border components into pairs)

    z⁶⁾_-jⱮZj@"Ç;“...’ṃ“ \_¶(o)/|-w^”¤⁶ẋ7¤;Ɱ$¤   Main Link
    z⁶                                           Zip, using space as filler
          Ɱ                                      For each column
      ⁾_-j                                       Join ["_", "-"] using it (prepend _ and append -)
           Z                                     Zip
            j@"Ç                                 Vectorized swapped join with the helper link (basically, for each row, prepend and append the borders)
                ;                                Append: {{
                 “...’                           [74919636, 18094888405540119, 348588099826292465090, 201691922550410181, 201691922521093317]
                      ṃ“ \_¶(o)/|-w^”            Base decompressed with " \_*(o)/|-w^" (where * is newline) - this is the cow without leading spaces
                                           Ɱ     For each row
                                      ⁶ẋ7¤;      Append " " * 7
                                                   }}