Generally speaking, XMS support does not depend on any chipset-specific features. It is just the CPU outputting memory addresses above 1 MiB.
The only prerequisite there is enabling A20 gate. This is typically done using keyboard controller, although some chipsets and BIOSes offer "fast A20" option implemented in chipset. If that option is present in the BIOS, disabling it usually provides better compatibility. Also, HIMEM.SYS tests the XMS memory, so if it loads without any errors, the memory is probably OK.
EMS on the other hand is a memory paging technique implemented in the chipset (or a separate logic on in case of an ISA EMS board), so it is very much chipset/vendor specific, particularly for 8088/86/286 (in 386 and up EMM386 can be used to emulate EMS using Virtual 8086 mode).
To make things easier, unless you know you need EMS, just use XMS. With DOS >= 5.0, you should be able to use DOS=HIGH, which will use the first 64 KiB above the first megabyte to load parts of DOS and will save the lower 640 KiB (conventional memory) for applications.
Regarding Windows 3.1 on 286:
- It only works in "Standard Mode", which utilizes 286 protected mode, and can use XMS memory (no 1 MiB memory limit, no need for EMS)
- When you run DOS application, Windows actually resets the CPU, and runs it in real mode (vs. protected mode that Windows standard mode uses), there are no benefits in running DOS applications from Windows (on 386 / Windows 3.1 Enhanced Mode runs DOS in a VM86 mode, which allows it to co-exist with other Windows applications) . On a 286, I personally would run DOS applications from DOS...