Need more details. First what version of KiCad do you use and what system? Both of these can be answered by using the “Copy Version Info” button in the about window and pasting the results here. For example, this is my version information:
Application: Pcbnew
Version: (5.1.4)-1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.1
Compiler: GCC 8.2.0 with C++ ABI 1013
Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON
(Note, there is a known Windows bug that doesn’t properly report the system info to applications which is why KiCad is reporting Win8 on my Win10 computer.)
Second, how are you placing vias? I ask because I just tried to duplicate your issue on my install and could not replicate your experience.
What I did was while routing a track I pressed the V key (with or without shift works for me) and as soon as I left-clicked to place the via my routing layer changed to the opposite side (2 layer board). I also used the “Place Through Via” contextual menu item with the same results.