I feel the layer object in Visio is not well structured.
The sample VBA code at
http://visio.mvps.org/VBA/default.html
would be a help.
Another example in short hand would be
Option Explicit
Public Sub LayersContent2()
Dim PagObj As Visio.Page
Dim layersObj As Visio.Layers, layerObj As Visio.Layer
Dim shpsObj As Visio.Shapes, shpObj As Visio.Shape
Dim I As Long, N As Long
For Each PagObj In ActiveDocument.Pages
For Each shpObj In PagObj.Shapes
N = shpObj.LayerCount
If N > 0 Then
For I = 1 To N
Set layerObj = shpObj.Layer(I)
If layerObj.Name = "A" Then
shpObj.Cells("Width").Result(visMillimeters) = 60
End If
Next I
End If
Next shpObj
Next PagObj
End Sub